[英]Dictionary with multiple values to tuple
我有一本具有多个值的字典,如下所示:
dict_a = {1: {'a':1, 'b':2, 'c':3}, 2:{'a': 4, 'b':5, c:'6'}}
。
我想要这样的结果:
[('a',(1,4)),('b',(2,5)), ('c',(3,6))]
我写了一个代码:
for keys, values in dict_a:
for k, v in values:
print(v)
但是结果就像('a',1),('b',2)
.... 谁能帮我这个忙!!!
您可以使用列表理解:
dict_a = {1: {'a':1, 'b':2, 'c':3}, 2: {'a':4, 'b':5, 'c':6}}
res = [(k, tuple(d[k] for d in dict_a.values())) for k in dict_a[1]]
[('a', (1, 4)), ('b', (2, 5)), ('c', (3, 6))]
假设:
dict_a
由外键排序,这在Python 3.6+中可能是自动的。 否则,请使用collections.OrderedDict
。 dict_a
每个字典值中的dict_a
都是相同的。 使用collections.defaultdict
:
设定
from collections import defaultdict
dct = defaultdict(tuple)
for _, v in dict_a.items():
for el in v:
dct[el] += (v[el],)
print(list(dct.items())
[('a', (1, 4)), ('b', (2, 5)), ('c', (3, '6'))]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.