我想将列表列表转换为字典列表。我有办法做到这一点,但我怀疑有更好的方法:
t = [[1,2,3], [4,5,6]]
keys = ['a', 'b', 'c']
[{keys[0]:l[0], keys[1]:l[1], keys[2]:l[2]} for l in t]
带输出
[{'a': 1, 'c': 3, 'b': 2}, {'a': 4, 'c': 6, 'b': 5}]
这可以通过循环完成,但我敢打赌,这样做的功能更容易。从this answer开始,我猜测有map
命令可以做到这一点,但我不太清楚如何做到这一点。
答案 0 :(得分:8)
您可以使用列表理解和zip
:
[dict(zip(keys, l)) for l in t ]
演示
>>> d = [dict(zip(keys, l)) for l in t ]
>>>
>>> d
[{'a': 1, 'c': 3, 'b': 2}, {'a': 4, 'c': 6, 'b': 5}]
>>>
答案 1 :(得分:0)
它也可以通过字典理解来解决,这样:
>>> [{k:v for k,v in zip(keys, l)} for l in t]
[{'c': 3, 'b': 2, 'a': 1}, {'c': 6, 'b': 5, 'a': 4}]