Python 将列表列表转换为词典列表

Python 将列表列表转换为词典列表,python,list,dictionary,Python,List,Dictionary,我想将列表列表转换为字典列表。我有办法做到这一点,但我怀疑还有更好的办法: 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}] 这可以通过一个循环来完成,但我打赌有一个函数可以更轻松地完成。根据我的猜测,有一种方法可以使用map命

我想将列表列表转换为字典列表。我有办法做到这一点,但我怀疑还有更好的办法:

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}]

这可以通过一个循环来完成,但我打赌有一个函数可以更轻松地完成。根据我的猜测,有一种方法可以使用
map
命令来实现,但我不太确定如何实现

您可以对构造函数使用列表理解,并且:

演示


也可以通过字典理解来解决,方法如下:

>>> [{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}]

嗯,
{k:v代表k,v在zip(x,y)}
实际上就是dict(zip(x,y))的显式、长版本。。。
>>> d = [dict(zip(keys, l)) for l in t ]
>>>
>>> d
[{'a': 1, 'c': 3, 'b': 2}, {'a': 4, 'c': 6, 'b': 5}]
>>> 
>>> [{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}]