比较多个字典并使用python生成另一个字典
我有两本字典,比如:比较多个字典并使用python生成另一个字典,python,dictionary,generator,Python,Dictionary,Generator,我有两本字典,比如: dict1 = {'Ron': ['Ronaldo', 'Ronald', 'Ron', 'Ronny'], 'John': ['Johnny', 'john', 'johnny Bravo'], 'Hard': ['Hardy', 'Hardy Boys', 'Hardness']} dict2 = {'Ronald': ['America', 'New York'], 'Johnny': ['Canada', 'O
dict1 = {'Ron': ['Ronaldo', 'Ronald', 'Ron', 'Ronny'],
'John': ['Johnny', 'john', 'johnny Bravo'],
'Hard': ['Hardy', 'Hardy Boys', 'Hardness']}
dict2 = {'Ronald': ['America', 'New York'],
'Johnny': ['Canada', 'Ottawa']}
我想比较这两个词典,并提取dict1的'key'和dict2的值,当且仅当dict2的'key'与dict1的值匹配!比如:
resultant_dict = {'Ron' : ['America', 'New York'],
'John' : ['Canada', 'Ottawa']}
我已经尝试过嵌套循环,并且能够得到所需的dict,但是请有人用python中的生成器帮助我做到这一点!谢谢注意:DICT2的键只能是DICT1值中的一个 首先,颠倒
dict1
字典:
rev = {v:k for k,vs in dict1.iteritems() for v in vs}
resultant_dict = {rev[k]:v for k,v in dict2.iteritems()}
rev
现在是:
{'Hardness': 'Hard',
'Hardy': 'Hard',
'Hardy Boys': 'Hard',
'Johnny': 'John',
'Ron': 'Ron',
'Ronald': 'Ron',
'Ronaldo': 'Ron',
'Ronny': 'Ron',
'john': 'John',
'johnny Bravo': 'John'}
然后使用此字典从dict2
映射键:
rev = {v:k for k,vs in dict1.iteritems() for v in vs}
resultant_dict = {rev[k]:v for k,v in dict2.iteritems()}
返回
{'John': ['Canada', 'Ottawa'], 'Ron': ['America', 'New York']}
首先,颠倒
dict1
字典:
rev = {v:k for k,vs in dict1.iteritems() for v in vs}
resultant_dict = {rev[k]:v for k,v in dict2.iteritems()}
rev
现在是:
{'Hardness': 'Hard',
'Hardy': 'Hard',
'Hardy Boys': 'Hard',
'Johnny': 'John',
'Ron': 'Ron',
'Ronald': 'Ron',
'Ronaldo': 'Ron',
'Ronny': 'Ron',
'john': 'John',
'johnny Bravo': 'John'}
然后使用此字典从dict2
映射键:
rev = {v:k for k,vs in dict1.iteritems() for v in vs}
resultant_dict = {rev[k]:v for k,v in dict2.iteritems()}
返回
{'John': ['Canada', 'Ottawa'], 'Ron': ['America', 'New York']}
请展示您的尝试?此外,这个问题没有很好的定义-来自
dict2
的密钥是否只能位于dict1
的值之一?如果没有,那么在这种情况下会发生什么?请说明您尝试这样做的情况?此外,这个问题没有很好的定义-来自dict2
的键是否只能位于dict1
的值之一?如果没有,那么在这种情况下会发生什么?