2010-11-02 82 views
1

聰明的方式來重組這兩個列表我有蟒蛇下面的列表中,我想重新組合成一個字典/列表:在python

names = ['banana','grapefruit','apple'] 
colors = ['yellow','pink','green'] 

fruits = [ 
{'name':'banana','color':'yellow'}, 
{'name':'grapefruit','color':'pink'}, 
{'name':'apple','color':'green'} 
] 

什麼是最好的方式去做吧?我正在試圖編寫循環的節點上將我的大腦捆綁起來。

請幫忙! :)

+0

如果我想這樣做n'水果屬性'例如。如果fruit_attributes = ['name','color','taste',...],那麼實現這個的最好方法是什麼? – significance 2010-11-02 18:36:32

+0

您應該編輯問題(如果可以,現在找不到所需的聲譽)。另外,這些值的格式是什麼? '[[name1,name2],[color1,color2]]或'[[name1,color1],[name2,color2]]'或者完全不同的東西? – delnan 2010-11-03 15:03:13

回答

11
fruits = [{"name": name, "color": color} for name, color in zip(names, colors)] 
9
[ {'name': name, 'color': color} for name, color in zip(names, colors) ] 

通常的條款和條件適用於:

  • 在Python 2,itertools.izip是明智的潛在的大名單
  • 如果實際數據有許多列表/屬性,這可以被推廣爲在大規模上更加優雅
  • 如果密封破裂,保證無效
  • ...