为什么它的显示键错误,当我使用setdefault方法



我使用setdefault方法并遵循本教程:

这里有一个例子:

my_string = 'abc'
tree = {}
def add_to_tree(root, value_string):

    for character in value_string:
        root = root.setdefault(character, {})
        print(tree['a']['b'])

add_to_tree(tree, my_string)

为什么它显示键错误,当我使用setdefault ?

编辑:我得到了错误,但请解释这个代码是如何工作的?

第一次tree['a']返回空字典,当您键入tree['a']['b']时,您正在尝试访问键b不存在的项目,这会引发错误key error,因此,如果要打印不存在键的默认值的树,请使用get方法,它需要两个参数首先是键,其次是默认值返回,如果项目不存在示例:

>>> d={}
>>> d.get('d','')
''
>>> d.get('d',0)
0

tree['a']['b']试图访问字典tree['a']中与'b'相关的值。您的代码没有填充在root中创建的任何字典。

最新更新