我的函数被赋予字典(db)和字符串(类型)列表。我需要获取字符串列表,看看这些字符串中是否有任何字符串的值。如果字符串在值中,我需要创建一个新字典并使用在其值中包含该字符串的项来更新它。
例如:
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:字典更新序列元素#0的长度为1; 2是必需的
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
这个错误意味着什么,我该如何解决?这实际上是我在其他几个函数中遇到的一个问题。
答案 0 :(得分:1)
dict.update()接受另一个dict
或一对可迭代的对作为参数。但是,在您的情况下,key
是一个字符串。所以也许你的意思是:
d.update([(key, values)])
或简单地说:
d[key] = values