我试图将两个dict组合成一个,其中键是第一个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},
谢谢你的帮助,谢谢
因此,要从特定定义的输入中获得预期的输出,您可以执行以下操作:
但这实际上取决于您的数据结构,请检查
您的问题之一是函数没有返回组合字典
相关问题 更多 >
编程相关推荐