我目前正在遍历列表的一个值。在每次迭代中,我都会将该列表追加到新列表中,以便获得列表列表。但是,我收到的输出不是我期望的输出。

我已尽可能简化了问题,并得出了以下结论:

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[:])

10-07 15:09