所以,我有一個問題,我必須採取特定的鍵和相應的值,並將它們添加到一個新的字典當且僅當滿足條件。更具體地說,我定義了一個函數pokemon_by_types(db, types)
它檢查給定數據庫中的口袋妖怪的類型是否與字符串的列表中的類型匹配。如果滿足條件,如何將字典的特定鍵添加到另一個字典?
給定數據庫的格式是這樣:
sample_db = {
"Bulbasaur": (1, "Grass", "Poison", 45, 49, 49, 45, 1, False),
"Charmander": (4, "Fire", None, 39, 52, 43, 65, 1, False),
"Charizard": (6, "Fire", "Flying", 78, 84, 78,100, 1, False),
"Moltres": (146, "Fire", "Flying", 90,100, 90, 90, 1, True),
"Crobat": (169, "Poison", "Flying", 85, 90, 80,130, 2, False),
"Tornadus, (Incarnate Form)": (641, "Flying", None, 79,115, 70,111, 5, True),
"Reshiram": (643, "Dragon", "Fire", 100,120,100, 90, 5, True)
}
正如你可以看到,索引1和2將永遠爲類型的位置。
我需要做一個函數,檢查給定的字典在上述格式,並查看是否類型(任何一個,至少需要一個if語句爲true)匹配給定的字符串列表「類型」。
如果確實匹配,我需要將這些特定的鍵和值添加到空字典中。
下面是我到目前爲止的代碼:
def pokemon_by_types(db, types):
tdb={}
for pokemon in db:
if ((db[pokemon])[1]) or ((db[pokemon])[2]) in types:
tdb.update(db)
return tdb
目前,沒什麼被添加到字典「TDB」。
你的情況並沒有做你認爲它在做什麼,你的意思是'如果數據庫[口袋妖怪] [1]類型或數據庫[口袋妖怪] [2]類型:'此外,你不想更新'db',因爲那會更新*整個字典。你可以做'tbd [pokemon] = db [pokemon]' –
你打電話給你的方法怎麼樣? –
@Robert Seaman我使用單獨的測試程序文件調用函數。 Juanpa.arrivillaga:非常感謝! – ruckarucka