我正在使用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时显示关键错误?
编辑:我收到了错误但请解释这段代码是如何工作的?
答案 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
中创建的任何词典。