2017-04-22 65 views
-2

我试图建立一个结合两个字典的函数。这应该很容易,但有一个问题。Python-从两个字典中的匹配键获取信息?

给定两个字典:

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 

建议?解决方案?

回答

0

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

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

你应该能够保证不会有这里抛出的异常。 (为什么?)

然后您需要将它们粘贴到其他字典中以返回。

+0

以何种顺序?在键之前还是之后? – kg123

+0

那么,什么是有道理的?你知道如何将一个项目添加到字典中吗?试试看看会发生什么。 – nimish

相关问题