我正在尝试弄清楚如何在 Python 中将子列表添加到列表中。例如,我之前使用的代码是:
pop = [[],[],[],[],[],[],[],[],[],[]]
但我想将用户输入添加到 pop 数组的长度,即。添加了多少数组。我查看了其他一些 stackoverflow 问题,其中一些建议如下:
popLen = 5
pop = [None]*popLen
但是当我尝试创建一个包含 5 个 None 元素的列表而不是一个空数组时。我试过:
pop = [[]]*popLen
子列表的正确方法是什么?
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], [], []]