【发布时间】:2021-05-12 11:27:43
【问题描述】:
我正在尝试将两个 dict 合并为一个,其中键是第一个 dict 值,值是第二个键值。如果其中一个参数不是字典,则 func 需要返回:“输入必须是字典”
例如:
dict1 = {'ZIM': 'Zimbabwe'}
dict2 = {'ZIM': {'Gold': 3, 'Silver': 4, 'Bronze': 1, 'Total': 8}}
我希望得到的输出是:
comb_dict = {'Zimbabwe': {'Gold': 3, 'Silver': 4, 'Bronze': 1, 'Total': 8}}
我尝试以两种不同的方式来做这件事,但没有奏效.. 第一次尝试:
def switch_to_full_name(dict1,dict2):
comb_dict = {}
if isinstance(dict1, dict) and isinstance(dict2, dict):
keys = dict1.values()
comb_dict = {k:dict1[v] for k,v in dict2.items() if v in keys}
else:
return "Input must be a dictionary"
print(comb_dict)
输出如下:
{}
None
我的第二次尝试是这样的:
def switch_to_full_name(dict1,dict2):
comb_dict = {}
if isinstance(dict1, dict) and isinstance(dict2, dict):
comb_dict[dict1.values()] = comb_dict[dict2.values()]
else:
return "Input must be a dictionary"
print(comb_dict)
我在输出中得到了这个错误:
KeyError: dict_values([{'Gold': 0, 'Silver': 0, 'Bronze': 2, 'Total': 2},
感谢任何形式的帮助,谢谢!
【问题讨论】:
标签: python function dictionary