2017-04-20 22 views
0

我的函數被賦予一個字典(db)和一個字符串列表(類型)。我需要獲取這個字符串列表,看看這些字符串中的任何字符串是否在字典的值中。如果字符串在值中,我需要創建一個新的字典並使用其值中包含該字符串的項更新它。Python-在我的字典中導致此錯誤的原因,我該如何解決?

例:

types=['poison','Grass'] 
db={"Bulbasaur": (1, "Grass", "Poison", 45, 49, 49, 45, 1, False),} 
d={"Bulbasaur": (1, "Grass", "Poison", 45, 49, 49, 45, 1, False)} #adds the info for that pokemon 

我不斷收到這個錯誤,當我跑我的代碼:

ValueError: dictionary update sequence element #0 has length 1; 2 is required

def pokemon_by_types(db,types): 
    d={} 
    for item in types: 
     types=item 
     for key,values in db.items(): 
      if types in values: 
       d.update(key) 
    return d 

這個錯誤是什麼意思,我該如何解決?這實際上是我在其他幾項功能上遇到的問題。

回答

1

dict.update()接受另一個dict或一對迭代作爲參數。但在你的情況下,key是一個字符串。因此,也許你的意思是:

d.update([(key, values)]) 

或者乾脆:

d[key] = values 
+0

我不能相信這是這麼簡單!謝謝! –

相關問題