Python 将两个单词组合成一个单词

Python 将两个单词组合成一个单词,python,function,dictionary,Python,Function,Dictionary,我试图将两个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, 'Tota

我试图将两个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},

谢谢你的帮助,谢谢

因此,要从特定定义的输入中获得预期输出,您可以执行以下操作:

dict(zip(dict1.values(),dict2.values()) #输出=>{'津巴布韦':{'Gold':3,'Silver':4,'brown':1,'Total':8}
但这实际上取决于您的数据结构,请检查。

因此,要从特定定义的输入中获得预期的输出,您可以执行以下操作:

dict1 = {'ZIM': 'Zimbabwe'} dict2 = {'ZIM': {'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):
        comb_dict = {list(dict1.values())[0]: value for key, value in dict2.items()}
        return comb_dict
    else:
        return "Input must be a dictionary"



print(switch_to_full_name(dict1, dict2))
dict(zip(dict1.values(),dict2.values()) #输出=>{'津巴布韦':{'Gold':3,'Silver':4,'brown':1,'Total':8} 但这实际上取决于您的数据结构,请检查

dict1 = {'ZIM': 'Zimbabwe'} dict2 = {'ZIM': {'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):
        comb_dict = {list(dict1.values())[0]: value for key, value in dict2.items()}
        return comb_dict
    else:
        return "Input must be a dictionary"



print(switch_to_full_name(dict1, dict2))
您的问题之一是函数没有返回组合字典


您的问题之一是函数没有返回有效的组合词典

!谢谢!成功了!谢谢!没错,但是如果dict1有多个键和值呢?那个func只返回dict中的第一个键,还是我错了?是的,那个func只返回dict中的第一个键。没错,但是如果dict1有多个键和值呢?该func只返回dict中的第一个键,还是我错了?是的,该func只返回dict中的第一个键。