使用n个元素创建相同数字列表的最有效方法是什么?
答案 0 :(得分:13)
number = 1
elements = 1000
thelist = [number] * elements
>>> [1] * 10
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
注意:不要尝试复制像这样的可变对象(特别是列表列表),否则会发生这种情况:
In [23]: a = [[0]] * 10
In [24]: a
Out[24]: [[0], [0], [0], [0], [0], [0], [0], [0], [0], [0]]
In [25]: a[0][0] = 1
In [26]: a
Out[26]: [[1], [1], [1], [1], [1], [1], [1], [1], [1], [1]]
如果您使用numpy,对于多维列表numpy.repeat
是最好的选择。它可以在不同的轴上重复所有形状的数组。