我正在试图弄清楚如何在Python中将列表添加到列表中。例如,我之前使用的代码只是:
pop = [[],[],[],[],[],[],[],[],[],[]]
但我想将用户输入添加到pop数组的长度,即。添加了多少个数组。我已经看了一些其他的stackoverflow问题,其中一些提出了类似的建议:
popLen = 5
pop = [None]*popLen
但是当我尝试它创建一个包含5个无元素而不是空数组的列表时。我试过了:
pop = [[]]*popLen
子列表的正确方法是什么?
答案 0 :(得分:3)
pop = [[]]*popLen
应该可以使用,但它可能不是您想要的,因为它创建的列表中填充了相同的嵌套列表popLen
次,这意味着更改为一个列表元素将出现在其他元素中:
>>> a = [[]] * 3
>>> a[0].append(42)
>>> a
[[42], [42], [42]]
更好的选择是
pop = [[] for _ in range(popLen)] # use xrange() in Python 2.x
消除了这个问题:
>>> a = [[] for _ in range(3)]
>>> a[0].append(42)
>>> a
[[42], [], []]
答案 1 :(得分:3)
你可以这样做:
pop = [[] for x in range(popLen)]
不要试图乘以[[]]
- 这实际上会有效,但会做出与预期不同的事情(它会为您提供相同列表的副本,因此您无法单独更改它们。)