首页 > 解决方案 > 为什么 python 2d 列表彼此共享它们的元素?

问题描述

当我运行这个:

l = [0] * 5

l[0] = 1
l[1] = 2

print(l)

我明白了[1, 2, 0, 0, 0]

但是当我运行这个时:

l = [[]] * 5

l[0].append(1)
l[1].append(2)

print(l)

然后我明白了[[1, 2], [1, 2], [1, 2], [1, 2], [1, 2]]
我预计[[1], [2], [], [], []]

有什么区别? 为什么这些列表彼此共享它们的元素? 另外,我怎样才能制作没有元素共享列表的二维列表比这更简短?[k]*n[[]]*n


l = []
for i in range(5):
    l.append([])

l[0].append(1)
l[1].append(2)

print(l)

它给[[1], [2], [], [], []].


谢谢你。

标签: pythonlist

解决方案


推荐阅读