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

2024-09-27 02:24:28 发布

您现在位置:Python中文网/ 问答频道 /正文

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

谢谢你的帮助,谢谢


Tags: silverifdefdictisinstancetotalvaluescomb
2条回答

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

dict(zip(dict1.values(), dict2.values()))
# output => {'Zimbabwe': {'Gold': 3, 'Silver': 4, 'Bronze': 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))

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

相关问题 更多 >

    热门问题