在Python中将列表初始化为特定长度

我如何在Python中初始化一个10倍默认值的列表?

我正在寻找一个好看的方法来初始化一个具有特定范围的空列表。 所以做一个包含10个0的列表来确保我的列表有一个特定的长度

320703 次浏览

列表乘法很有用。

>>> [0] * 10
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

如果你想要的“默认值”是不可变的,@eduffy的建议,例如[0]*10,就足够了。

但是,如果你想要一个包含10个dict的列表,使用使用[{}]*10——这将给你一个包含相同初始为空的dict的列表十次,十个不同的列表。相反,使用[{} for i in range(10)]或类似的构造,构造10个单独的__abc0来组成你的列表。

在PyCon 2012上关于Python核心容器内部的讨论中,Raymond Hettinger建议使用[None] * n来预先分配你想要的长度。

幻灯片可用作PPT通过谷歌

整个幻灯片很有趣。 视频可以在YouTube上看到,但它并没有给幻灯片添加太多内容