为什么有时变量分配在列表上不起作用

问题描述

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的事实是惯例。