<分区>
list of lists的这两个声明有什么区别?
>>> l = [[]]*4
>>> l
[[], [], [], []]
>>> l[1].append(1)
>>> l
[[1], [1], [1], [1]]
>>> m = [[],[],[],[]]
>>> m[1].append(1)
>>> m
[[], [1], [], []]
<分区>
list of lists的这两个声明有什么区别?
>>> l = [[]]*4
>>> l
[[], [], [], []]
>>> l[1].append(1)
>>> l
[[1], [1], [1], [1]]
>>> m = [[],[],[],[]]
>>> m[1].append(1)
>>> m
[[], [1], [], []]
最佳答案
第一个创建了对单个列表的四个引用——它是同一个列表重复了四次。第二个创建四个不同的列表。在第一种情况下,当您追加到一个列表时,它会影响所有列表,因为它们都是同一个对象。在第二种情况下,每个列表都是一个不同的对象,因此附加到一个列表不会影响其他列表。
关于列表语法的Python列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11212246/