2013-12-20 30 views
-1

的名單我有2所列出:基於模板的字典制作出清單

TEMPLATE = ['sing.','pl.','mode'] 
DATA = [ 
['alpha','alphas',0], 
['beta','betas',2], 
['omega','omegas',3] 

我想創建一個字典列表,這將是這樣的:

[ {'sing.': 'alpha', 'pl.': 'alphas', 'mode':0}, 
{'sing.': 'beta', 'pl.': 'betas', 'mode':2}, 
{'sing.': 'omega', 'pl.': 'omegas', 'mode':3} ] 

是否有一個快速在Python 3中做到這一點?

+0

這不是一個地方,人們爲你做的工作。展現你的努力。 – aIKid

回答

4

使用zip將模板與單個數據條目一起編織。結果序列可以傳遞給構造函數dict。使用列表解析創建整個序列:

>>> [dict(zip(TEMPLATE,d)) for d in DATA] 
[{'pl.': 'alphas', 'sing.': 'alpha', 'mode': 0}, {'pl.': 'betas', 'sing.': 'beta', 'mode': 2}, {'pl.': 'omegas', 'sing.': 'omega', 'mode': 3}] 
2

可以使用zip功能,dict構造函數和列表理解,這樣

print([dict(zip(TEMPLATE, items)) for items in DATA])