为什么在向字典添加键时会出现 KeyError?
Why am I gettng a KeyError when adding a key to a dictonary?
我仍在努力学习 Python 词典的来龙去脉。当我 运行 这个:
#!/usr/bin/env python3
d = {}
d['foo']['bar'] = 1
我得到 KeyError: 'foo'
。但是在 How can I add new keys to a dictionary? 它说“你通过为该键分配一个值来在字典上创建一个新的 key\value 对。如果该键不存在,则添加它并指向该值。如果它存在,它指向的当前值将被覆盖。”那么为什么我会收到密钥错误?
你至少有两个选择:
- 按顺序创建嵌套字典:
d = {}
d['foo'] = {}
d['foo']['bar'] = 1
- 使用collections.defaultdict,将默认工厂作为字典传递:
from collections import defaultdict
d = defaultdict(dict)
d['foo']['bar'] = 1
你需要先将d['key']赋值为字典
d['a']={}
d['a']['b']= value
我仍在努力学习 Python 词典的来龙去脉。当我 运行 这个:
#!/usr/bin/env python3
d = {}
d['foo']['bar'] = 1
我得到 KeyError: 'foo'
。但是在 How can I add new keys to a dictionary? 它说“你通过为该键分配一个值来在字典上创建一个新的 key\value 对。如果该键不存在,则添加它并指向该值。如果它存在,它指向的当前值将被覆盖。”那么为什么我会收到密钥错误?
你至少有两个选择:
- 按顺序创建嵌套字典:
d = {}
d['foo'] = {}
d['foo']['bar'] = 1
- 使用collections.defaultdict,将默认工厂作为字典传递:
from collections import defaultdict
d = defaultdict(dict)
d['foo']['bar'] = 1
你需要先将d['key']赋值为字典
d['a']={}
d['a']['b']= value