首页 > 解决方案 > Python 元组列表到字典,其中字典的键来自另一个列表

问题描述

我想将元组列表转换为字典,其中字典的键来自另一个列表。

g = [('1002296714', '20060515', '700'),
 ('1002296064', '20081201', '100'),
 ('1002296761', '20200803', '308'),
 ('1002295811', '20030415', '110'),
 ('1002296132', '20200803', '100')]

m = ['a', 'b', 'c']

所需的输出:

[{m[0]: i[0],
  m[1]: i[1],
  m[2]: i[2]}
 for i in g]

[{'a': '1002296714', 'b': '20060515', 'c': '700'},
 {'a': '1002296064', 'b': '20081201', 'c': '100'},
 {'a': '1002296761', 'b': '20200803', 'c': '308'},
 {'a': '1002295811', 'b': '20030415', 'c': '110'},
 {'a': '1002296132', 'b': '20200803', 'c': '100'}]

上面有没有更好的写法?元组中的元素数量最多可以达到 6 个(列表“m”中的键数量相应增加)

标签: python

解决方案


您必须使用以下方法并行迭代zip

[{z: y for y, z in zip(x, m)} for x in g]

或更简单:

[dict(zip(m, x)) for x in g]

推荐阅读