如果我有一个列表列表,如:
my_list = [['key1', 'key2'], [1,2], ['a','b']]
我想把它变成一个dict,其中第一个列表的第一个元素是映射到其他dicts的相应索引元素的键,如:
my_dict = {'key1': [1, 'a'], 'key2': [2, 'b']}
有没有一种有效的方法呢?
答案 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)}