当我使用setdefault方法时为什么显示关键错误?

时间:2016-10-22 02:40:06

标签: python python-2.7 python-3.x

我正在使用setdefault方法并遵循本教程:This tutorial

这是一个例子:

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时显示关键错误?

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

2 个答案:

答案 0 :(得分:0)

当您键入tree['a']时,第一次tree['a']['b']返回空字典,您正在尝试使用不存在的密钥b访问项目时出现此错误key error所以如果想要打印树,默认值为不存在的键使用get方法首先需要两个参数是键二是如果项不存在则返回的默认值示例:

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

答案 1 :(得分:0)

tree['a']['b']正在尝试访问字典'b'中与tree['a']相关联的值。您的代码不会填充它在root中创建的任何词典。