将多个列表数据转换为dict

时间:2018-03-23 22:22:41

标签: python python-3.x dictionary

如果我有一个列表列表,如:

my_list = [['key1', 'key2'], [1,2], ['a','b']]

我想把它变成一个dict,其中第一个列表的第一个元素是映射到其他dicts的相应索引元素的键,如:

my_dict = {'key1': [1, 'a'], 'key2': [2, 'b']}

有没有一种有效的方法呢?

3 个答案:

答案 0 :(得分:3)

zip是您在此处想要从子列表中获取相应项目的内容。然后你可以使用dict理解来构建字典。

my_dict = {rec[0]: list(rec[1:]) for rec in zip(*my_list)}
# {'key1': [1, 'a'], 'key2': [2, 'b']}

如果dict值为元组,则可以省略list()调用。

答案 1 :(得分:1)

zip-splat是纯粹的蟒蛇“转置”。然后是另一个词典理解:

 (^\/$|^\/app|^\/page|^\/features$)(\/\w*)*

答案 2 :(得分:-2)

这应该做:

my_dict = {r[0]: list(r[1:]) for r in zip(*my_list)}