如何在Python中使用默认值的10倍初始化列表?
我正在寻找一种初看具有特定范围的空列表的好看方式。 因此,请创建一个包含10个零或其他内容的列表,以确保我的列表具有特定长度。
答案 0 :(得分:338)
如果您想要的“默认值”是不可变的,@ eduffy的建议,例如[0]*10
,已经足够了。
但是,如果您想要一个包含10个dict
的列表,请不使用[{}]*10
- 这将为您提供相同的列表最初为空dict
十次,不十种不同的。而是使用[{} for i in range(10)]
或类似结构构建十个单独的dict
来构成您的列表。
答案 1 :(得分:160)
列表乘法工作。
>>> [0] * 10
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
答案 2 :(得分:45)
在PyCon 2012上关于Python核心容器内部的讨论中,Raymond Hettinger建议使用[None] * n
来预先分配你想要的长度。
Slides available as PPT或via Google
整个幻灯片非常有趣。 presentation is available on YouTube,但它不会给幻灯片增加太多。