从列表列表中创建基于模板的字典

时间:2013-12-20 11:48:40

标签: python list python-3.x dictionary

我有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中有快速的方法吗?

2 个答案:

答案 0 :(得分: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}]

答案 1 :(得分:2)

你可以使用zip函数,dict构造函数和列表推导,就像这样

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