Python:如何在Python中组合两个字典,使结果包含key作为第一个字典的值
我有两本字典如下:Python:如何在Python中组合两个字典,使结果包含key作为第一个字典的值,python,dictionary,Python,Dictionary,我有两本字典如下: mydictionary_1 = {1:'apple',2:'banana'} mydictionary_2 = {1:50,2:30} 生成的字典应该以键作为第一个字典的值 Result_dictionary= {'apple':50, 'banana':30} 您可以使用字典理解,使用第一个字典的值作为结果字典的键。这假设第一个的所有键都存在于第二个dict {v: dict2[k] for k, v in dict1.items()} 您还可以在第二个字典中添加
mydictionary_1 = {1:'apple',2:'banana'}
mydictionary_2 = {1:50,2:30}
生成的字典应该以键作为第一个字典的值
Result_dictionary= {'apple':50, 'banana':30}
您可以使用字典理解,使用第一个字典的值作为结果字典的键。这假设第一个的所有键都存在于第二个
dict
{v: dict2[k] for k, v in dict1.items()}
您还可以在第二个字典中添加对键存在情况的检查
{v: dictionary_2[k] for k, v in dictionary_1.items() if k in dictionary_2}
您可以使用字典理解,使用第一个字典的值作为结果字典的键。这假设第一个的所有键都存在于第二个
dict
{v: dict2[k] for k, v in dict1.items()}
您还可以在第二个字典中添加对键存在情况的检查
{v: dictionary_2[k] for k, v in dictionary_1.items() if k in dictionary_2}
如前所述,词典理解是解决这一问题的理想方法。以下是循环的示例:
def combine_dictionaries(dict1, dict2):
result_dictionary = {}
for key in dict1.keys():
result_dictionary[dict1[key]] = dict2[key]
return result_dictionary
combine_dictionaries({1:'apple', 2:'banana'}, {1:50, 2:30})
>>>{'apple': 50, 'banana': 30}
这假设dict1的所有值都存在于dict2中。如前所述,字典理解是解决这一问题的理想方法。以下是循环的示例:
def combine_dictionaries(dict1, dict2):
result_dictionary = {}
for key in dict1.keys():
result_dictionary[dict1[key]] = dict2[key]
return result_dictionary
combine_dictionaries({1:'apple', 2:'banana'}, {1:50, 2:30})
>>>{'apple': 50, 'banana': 30}
def dict_cross_match(dict1, dict2):
new_dict = {}
for item in dict1.keys():
if item in dict2.keys():
new_dict[dict1[item]] = dict2[item]
return new_dict
mydictionary_1 = {1:'apple',2:'banana'}
mydictionary_2 = {1:50,2:30}
print(dict_cross_match(mydictionary_1, mydictionary_2))
这假设dict1的所有值都存在于dict2中。循环浏览其中一个字典,并检查mydictionary_1中某个键的值是否存在于mydictionary_2中
def dict_cross_match(dict1, dict2):
new_dict = {}
for item in dict1.keys():
if item in dict2.keys():
new_dict[dict1[item]] = dict2[item]
return new_dict
mydictionary_1 = {1:'apple',2:'banana'}
mydictionary_2 = {1:50,2:30}
print(dict_cross_match(mydictionary_1, mydictionary_2))
您可以使用python的字典理解来实现这一点-
Result_dictionary = { v:mydictionary_2[k] for k,v in mydictionary_1.iteritems() if k in mydictionary_2.keys()}
要了解这个列表理解是如何工作的,您甚至可以使用general for循环遍历mydictionary_1中的每个键、值对
for key,value in mydictionary_1.iteritems():
if key in mydictionary_2.keys():
Result_dictionary[value]=mydictionary_2[key]
循环浏览其中一个字典,并检查mydictionary_1中某个键的值是否存在于mydictionary_2中 您可以使用python的字典理解来实现这一点-
Result_dictionary = { v:mydictionary_2[k] for k,v in mydictionary_1.iteritems() if k in mydictionary_2.keys()}
要了解这个列表理解是如何工作的,您甚至可以使用general for循环遍历mydictionary_1中的每个键、值对
for key,value in mydictionary_1.iteritems():
if key in mydictionary_2.keys():
Result_dictionary[value]=mydictionary_2[key]
只是一个注释,字典没有顺序,所以你的结果字典可能有点混乱
{mydictionary_1[k]:v代表k,v在mydictionary_2.items()}
@vaultah,你的答案是第一位的,也是最有帮助的,试着把它作为答案发布,而不是一条评论,我会把你的答案标记为已解决,在评论中我无法标记…只是一个注释,字典没有顺序,所以你的结果字典可能有点混乱{mydictionary_1[k]:v代表k,v在mydictionary_2.items()}
@vaultah,你的答案是第一位的,也是最有帮助的,试着把它作为答案而不是评论发布,我会把你的答案标记为已解决,在评论中我无法标记。。。。