为什么在向字典添加键时会出现 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 对。如果该键不存在,则添加它并指向该值。如果它存在,它指向的当前值将被覆盖。”那么为什么我会收到密钥错误?

你至少有两个选择:

  1. 按顺序创建嵌套字典:
d = {}
d['foo'] = {}
d['foo']['bar'] = 1
  1. 使用collections.defaultdict,将默认工厂作为字典传递:
from collections import defaultdict

d = defaultdict(dict)
d['foo']['bar'] = 1

你需要先将d['key']赋值为字典

d['a']={}
d['a']['b']= value