2017-04-22 97 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

相關問題