我目前正在遍历列表的一个值。在每次迭代中,我都会将该列表追加到新列表中,以便获得列表列表。但是,我收到的输出不是我期望的输出。
我已尽可能简化了问题,并得出了以下结论:
def Function():
ListOfLists = []
Lists = [0]
for j in range(0, 5):
Lists[0] = Lists[0] + 1
print(Lists)
ListOfLists.append(Lists)
print("ListofLists:")
print(ListOfLists)
Function()
输出给我这个:
[1]
[2]
[3]
[4]
[5]
ListofLists:
[[5], [5], [5], [5], [5]]
我期望输出是:
[1]
[2]
[3]
[4]
[5]
ListofLists:
[[1], [2], [3], [4], [5]]
我要去哪里错了?
谢谢
最佳答案
您必须附加一个列表副本。当您说List
时,它是参考。 List
更改时,ListOfLists
更改。进行复制可以防止这种所谓的(意外)行为。
替换此行代码:
ListOfLists.append(Lists)
与:
ListOfLists.append(Lists[:])