Python - 什么原因导致我的字典出现此错误,我该如何解决?

时间:2017-04-20 14:31:53

标签: python-3.x dictionary for-loop

我的函数被赋予字典(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

这个错误意味着什么,我该如何解决?这实际上是我在其他几个函数中遇到的一个问题。

1 个答案:

答案 0 :(得分:1)

dict.update()接受另一个dict或一对可迭代的对作为参数。但是,在您的情况下,key是一个字符串。所以也许你的意思是:

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

或简单地说:

d[key] = values