为什么有时变量赋值对列表不起作用
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是约定俗成的
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是约定俗成的