2013-04-05 192 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