2013-04-05 112 views
8

我想创建一个包含空目录的可变长度列表。创建空字典列表

n = 10 # size of list 
foo = [] 
for _ in range(n) 
    foo.append({}) 

你会这样做,或者是否有类似的东西?

a = [{}*n] 

回答

23

列出解救援救!

foo = [{} for _ in range(n)] 

恐怕没有简短的表示法。在Python 2中,您使用xrange(n)而不是range(n)来避免实现无用的列表。

的替代方案中,[{}] * n创建长度n的仅一个字典列表,引用n次。当向字典添加键时,这会导致令人讨厌的惊喜。

+0

空字典? – MattH 2013-04-05 13:31:38

+0

嘿,哎呀,纠正。 – 2013-04-05 13:32:00

+1

以前给出的答案对我来说一直很好, 因为我不关心引用,因为我在下一步将整个列表转换为JSON。但是我会接受你的答案,因为它具有更广泛的用途。 – 2013-04-05 13:35:59