问题描述
Python初学者在这里。对列表分配的性质感到困惑。
a = [1,2,3]
b = a.reverse()
>>>a
>>>[3,1]
>>>b
>>> # nothing shows up
或
e = [1,3]
f = e.append(4)
>>>e
>>>[1,3,4]
>>>f
>>> # nothing shows up
为什么分配给b或f在这里不起作用。 我相信这与列表的可变性有关吗?我完全错了吗?谢谢
解决方法
这两种方法都进行了in-place
修改,即:
b = a.reverse()
f = e.append(4)
它们修改原始对象,而不创建新对象。因此,当您尝试打印它们时,会看到None
。
根据@ juanpa.arrivillaga:
注意:这些方法返回None的事实是惯例。