python定义三层defaultdict

 使用如下代码定义三层defaultdict

from collections import defaultdict
d = defaultdict(lambda: defaultdict(lambda: defaultdict()))

print(f'd[1][2]: {d[1][2]}')
d[1][2][3] = 0
print(f'd[1][2][3]: {d[1][2][3]}')
print(f'd[1][2][4]: {d[1][2][4]}')

输出为

d[1][2]: defaultdict(None, {})
d[1][2][3]: 0
Traceback (most recent call last):
  File "/home/dongyuchen/scripts/query.py", line 41, in 
    print(f'd[1][2][4]: {d[1][2][4]}')
KeyError: 4

解释一下输出:

  • print(d[1][2]) 说明第一层的键和第二层的键不需要赋值即可直接访问,有默认值
  • d[1][2][3] = 0 说明第三层的键对应的值可以直接赋值
  • print(d[1][2]][4]) 报错说明第三层的键对应的值必须先赋值才能访问

你可能感兴趣的:(#,python基础编程,python)