我有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 :(得分: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])