gpt4 book ai didi

python : how to append new elements in a list of list?

转载 作者:太空狗 更新时间:2023-10-29 22:01:25 24 4
gpt4 key购买 nike

这是一个非常简单的程序:

 a = [[]]*3

print str(a)

a[0].append(1)
a[1].append(2)
a[2].append(3)

print str(a[0])
print str(a[1])
print str(a[2])

这是我期待的输出:

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

但我却得到了这个:

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

这里真的有些东西我没有得到!

最佳答案

你必须做

a = [[] for i in xrange(3)]

不是

a = [[]]*3

现在可以了:

$ cat /tmp/3.py
a = [[] for i in xrange(3)]

print str(a)

a[0].append(1)
a[1].append(2)
a[2].append(3)

print str(a[0])
print str(a[1])
print str(a[2])

$ python /tmp/3.py
[[], [], []]
[1]
[2]
[3]

当您执行类似a = [[]]*3 的操作时,您会在一个列表中得到相同的列表[] 三次。 相同 意味着当你更改其中一个时,你会更改所有它们(因为只有一个列表被引用了三次)。

你需要创建三个独立的列表来规避这个问题。你用列表理解来做到这一点。您在这里构建了一个由独立的空列表 [] 组成的列表。将为 xrange(3) 的每次迭代创建新的空列表(在这种情况下,rangexrange 之间的区别并不那么重要;但是 xrange 稍微好一点,因为它不会生成完整的数字列表,而只是返回一个迭代器对象。

关于 python : how to append new elements in a list of list?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11219949/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com