为什么有时变量赋值对列表不起作用

why does variable assignment not work on lists sometimes

Python 初学者。对列表分配的性质感到困惑。

a = [1, 2, 3]
b = a.reverse()
>>>a 
>>>[3,2,1]
>>>b
>>> # nothing shows up

e = [1,2,3]
f = e.append(4)
>>>e 
>>>[1,2,3,4]
>>>f
>>> # nothing shows up

为什么分配给 b 或 f 在这里不起作用。 我相信这与列表的可变性有关?我完全错了吗?谢谢

这两种方法都进行了 in-place 修改,即:

b = a.reverse()
f = e.append(4)

他们修改了原始对象而不创建新对象。因此,当您尝试打印这些时,您会看到 None

根据@juanpa.arrivillaga:

注:其实这些方法returnNone是约定俗成的