[英]how can i map one list with keys and others lists with values into a dictionary
我想制作一个包含子词典的字典
K = ['k1', 'k2', 'k3'] # key list
A = [['v1', 'v2', 'v3'], ['1', '2', '3']] #value list
list_dict = ['dict1', 'dict2']
D = {d : {} for d in list_dict}
我想做这个:
D = {'dict1': {'k1': 'v1',
'k2': 'v2',
'k3': 'v3'},
'dict2': {'k1': '1',
'k2': '2',
'k3': '3'}}
In [70]: D = {d : dict(zip(K,v)) for d,v in zip(list_dict, A)}
In [71]: D
Out[71]:
{'dict1': {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'},
'dict2': {'k1': '1', 'k2': '2', 'k3': '3'}}
尝试使用:
answer = {list_dict[l]: {K[i]: A[l][i] for i in range(len(K))} for l in range(len(list_dict))}
这将设置字典的答案,其中键是list_dict中的所有项目。 然后,这些值是字典,通过使用映射到A [l]中相应项目的K中的每个项目生成,其中l是list_dict中键的编号。
答案是:
{
'dict1':
{'k3': 'v3',
'k2': 'v2',
'k1': 'v1'},
'dict2':
{'k3': '3',
'k2': '2',
'k1': '1'}
}
希望这可以帮助。
您可以将zip函数与dict混合使用,如下所示:
K = ['k1', 'k2', 'k3'] # key list
A = [['v1', 'v2', 'v3'], ['1', '2', '3']] # value list
list_dict = ['dict1', 'dict2']
D = {}
for i in range(len(A)):
D[list_dict[i]] = (dict(zip(K, A[i])))
print(D)
注意:它非常类似于: 在Python中将两个列表映射到字典中
另一种方法。
d = dict.fromkeys(list_dict)
for i, k in enumerate(sorted(d.keys())) :
d[k] = {key:value for key, value in zip(K, A[i])}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.