首页 > 解决方案 > Python append 函数没有按预期工作

问题描述

>>> a = [1,2,3]
>>> b = []
>>> b.append(a)
>>> print(b)
[[1, 2, 3]]
>>> num = a.pop(0)
>>> a.append(num)
>>> print(a)
[2, 3, 1]
>>> b.append(a)
>>> print(b)
[[2, 3, 1], [2, 3, 1]]
>>> 

为什么会发生这种情况以及如何解决?我需要这样的清单

[[1, 2, 3], [2, 3, 1]]

谢谢你。

编辑:

另外,为什么这有效?

>>> a = []
>>> b = []
>>> a = [1,2,3]
>>> b.append(a)
>>> a = [1,2,3,4]
>>> b.append(a)
>>> print(b)
[[1, 2, 3], [1, 2, 3, 4]]
>>> 
'''

标签: pythonpython-3.xlist

解决方案


a至少第一次附加您的列表副本。否则,您两次都附加了相同的列表。

b.append(a[:])

推荐阅读