首页 > 解决方案 > 为什么在向字典添加键时会出现 KeyError?

问题描述

我仍在努力学习 Python 字典的来龙去脉。当我运行这个:

#!/usr/bin/env python3
d = {}
d['foo']['bar'] = 1

我明白了KeyError: 'foo'。但是在如何向字典中添加新键? 它说“您通过为该键分配一个值来在字典上创建一个新的键\值对。如果该键不存在,则将其添加并指向该值。如果存在,则它指向的当前值是覆盖。” 那么为什么我会收到关键错误?

标签: pythonpython-3.xdictionarykey

解决方案


你至少有两个选择:

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

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

推荐阅读