我使用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
中创建的任何字典。