我如何在Python中用默认值初始化一个包含10个元素的列表?
我正在寻找一种好看的方法来初始化一个特定范围的空列表。 例如,创建一个包含10个零或其他相同默认值的列表,以确保我的列表具有特定的长度。
如果你想要的“默认值”是不可变的,@eduffy的建议,例如[0]*10
,已经足够好了。
但是如果你想要一个包含十个字典的列表,请不要使用[{}]*10
-- 这将给你一个初始为空的dict
出现十次的列表,而不是十个不同的字典。相反,可以使用[{} for i in range(10)]
或类似的结构来构造十个单独的dict
,以组成你的列表。
列表乘法有效。
>>> [0] * 10
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
在2012年的PyCon中,Raymond Hettinger在有关Python核心容器内部的演讲中建议使用[None] * n
来预先分配您想要的长度。
整个幻灯片系列非常有趣。 演示视频可在YouTube上获得,但对幻灯片没有太多补充。