2017-04-20 12 views
0

My機能は、辞書(デシベル)と文字列(タイプ)のリストを与えています。その文字列のリストを取得して、その文字列のどれかが辞書の値に含まれているかどうかを確認する必要があります。文字列が値の中にある場合、新しい辞書を作成し、その文字列をその値に含む項目で更新する必要があります。の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

私は信じることができないが、それは簡単なことでした!ありがとうございました! –

関連する問題