|
20鱼币
1,- >>> a = [1, 3, 5]
- >>> a
- [1, 3, 5]
- >>> a.append(9)
- >>> a
- [1, 3, 5, 9]
- >>> a.append(1)
- >>> a
- [1, 3, 5, 9, 1]
- >>> b = a.append(2)
- >>> b
- >>> b
- >>> type(b)
- <class 'NoneType'>
复制代码
为什么a.append赋值给b,b是NoneType呢?
2,- >>> a = [1, 2, 3]
- >>> b = a
- >>> a = [4, 5, 6]
- >>> b
- [1, 2, 3]
复制代码
>>> a = [1, 2, 3]
>>> b = a
>>> a[1] = 5
>>> b
[1, 5, 3]
一开始a与b都是数值[1, 2, 3]的引用,a is b。按小甲鱼教学一个变都要变,但按照上述实例操作,局部元素赋值不会生成新的内存(a is b),整体赋值生成新的内存(a is not b)。底层逻辑是什么啊?
1、因为append方法没有返回值 所以b是无类型
2、
- >>> a = [1, 2, 3]
- >>> b = a
复制代码
a,b全部指向列表[1,2,3]
但是你重新 a = [4, 5, 6], a就会重新指向 列表[4,5,6]
|
最佳答案
查看完整内容
1、因为append方法没有返回值 所以b是无类型
2、
a,b全部指向列表[1,2,3]
但是你重新 a = [4, 5, 6], a就会重新指向 列表[4,5,6]
|