我如何在Python中初始化一个10倍默认值的列表?
我正在寻找一个好看的方法来初始化一个具有特定范围的空列表。 所以做一个包含10个0的列表来确保我的列表有一个特定的长度
列表乘法很有用。
>>> [0] * 10 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
如果你想要的“默认值”是不可变的,@eduffy的建议,例如[0]*10,就足够了。
[0]*10
但是,如果你想要一个包含10个dict的列表,使用不使用[{}]*10——这将给你一个包含相同初始为空的dict的列表十次,不十个不同的列表。相反,使用[{} for i in range(10)]或类似的构造,构造10个单独的__abc0来组成你的列表。
dict
[{}]*10
[{} for i in range(10)]
在PyCon 2012上关于Python核心容器内部的讨论中,Raymond Hettinger建议使用[None] * n来预先分配你想要的长度。
[None] * n
幻灯片可用作PPT或通过谷歌