我有以下词典:
dict1={'fx245': 2, 'gt345': 12, 'vf251': 1, 'js921': 3}
dict2={'fx245': 'Alex', 'gt345': 'Peter', 'vf251': 'Louis', 'js921': 'Alice'}
问题是:如何链接这两个词典?例如:
代码fx245,即Alex,编号为2。
帮助和感谢
答案 0 :(得分:2)
使用词典理解制作一个新的词典:
from collections import namedtuple
dict1 = {'fx245': 2, 'gt345': 12, 'vf251': 1, 'js921': 3}
dict2 = {'fx245': 'Alex', 'gt345': 'Peter', 'vf251': 'Louis', 'js921': 'Alice'}
Person = namedtuple('Person', 'name number')
all_keys = dict1.viewkeys() & dict2.viewkeys() # just use .keys() on py3
dictmix = {k: Person(dict2.get(k), dict1.get(k)) for k in all_keys}
演示:
>>> dictmix['fx245']
Person(name='Alex', number=2)
>>> dictmix['fx245'].name
'Alex'
>>> dictmix['fx245'].number
2
答案 1 :(得分:2)
给出
dict1 = {'fx245': 2, 'gt345': 12, 'vf251': 1, 'js921': 3}
dict2 = {'fx245': 'Alex', 'gt345': 'Peter', 'vf251': 'Louis', 'js921': 'Alice'}
创建第三个dict,将代码映射到名称和数字:
dict3 = {k:(v, dict1[k]) for k, v in dict2.items()}
这是在行动:
>>> dict3['fx245']
('Alex', 2)
>>> name, num = dict3['fx245']
>>> name
'Alex'
>>> num
2
您在评论中提到要迭代新字典并打印代码,名称和编号。这样做:
for code, (name, num) in dict3.items():
print(code, name, num)