Python-从两个词典中的匹配键获取信息?

时间:2017-04-22 16:22:23

标签: python-3.x dictionary for-loop

我正在尝试构建一个结合了两个词典的函数。应该很容易,但有一个问题。

给出两个词典:

info_format_dict={ name: (id, type1, type2, generation, legendary), 
'Bulbasaur': (1, 'Grass', 'Poison', 1, False), 'Charmander': (4, 
'Fire', None, 1, False)}

stats_format_dict={ id: (hp, attack, defense, speed),1: (45, 49, 49, 
45)}

如果在两者中都找到了id号,我必须组合词典。所以在这个例子中,来自info_format_dict' Bulbasaur' id为1,在stats_format_dict中,1为id号。他们相配。然后我必须按以下格式将该项添加到新词典中:

new_dict={"Bulbasaur": (1, "Grass", "Poison", 45, 49, 49, 45, 1, 
False)}

任何没有匹配的人都会被丢弃。我创建的函数将字典放入列表进行比较,但是一旦找到匹配项,我就会陷入如何进行实际组合的问题。我如何进行实际组合并且检查是否正确?

这是我的代码:

def combine_databases(info_format_dict,stats_format_dict):
    statskeyslist=[]
    idnums=[]   
    for key,values in info_format_dict.items():
        idnum=values[0]
        idnums.append(idnums)

    for keys in stats_format_dict:
        stats_key=keys
        statskeyslist.append(keys) 

    for item in statskeyslist:
        if item in idums:
        #combine them into a dictionary

连连呢?溶液

1 个答案:

答案 0 :(得分:0)

你的内循环内部都有键。 (你应该能够解释为什么,因为你在上面创建了它们!)为什么不尝试从每个字典中获取值并尝试将它们组合起来?

v1 = info_format_dict[item]
v2 = stats_format_dict[item]

您应该能够保证不会在此处抛出异常。 (为什么?)

然后你需要将它们粘贴到其他一些词典中才能返回。