在字典中指定嵌套键和值

2024-05-16 07:49:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要为字典指定嵌套值。为了便于理解,我简化了我的问题:

Data = {}   
day1 = 'March12'
day2 = 'March14'
e1 = 'experiment1'
e2 = 'experiment2'

Data[day1][e1] = 4 

但是Data[day1][e1] = 4命令不起作用(原因与test = {} ; test["foo"]["bar"] = 0相同)。有解决办法吗?在

我试着做一些事情,比如:

^{pr2}$

但我不能成功;我写的所有东西都以某种方式覆盖了现有的价值观,或者不是我想要的那样。我可能错过了一些东西。。。在

一些额外的注意事项:一开始没有任何关于字典长度的信息,也没有关于它到底是什么样子的信息。而不是值4,我将一个对象指定为一个值。我需要使用这样的结构(Data[day1][e1]),因为我必须在循环中将对象分配给它们的键。在


Tags: 对象test命令信息data字典原因e2
2条回答

您需要在Data中存储一个新的字典来实现这一点:

Data[day1] = {}
Data[day1][e1] = 4

但通常情况下,您首先要测试字典是否已经存在;使用dict.setdefault()使之成为一个一步完成的过程:

^{pr2}$

^{} type自动执行该过程:

from collections import defaultdict

Data = defaultdict(dict)
Data[day1][e1] = 4

day1键还不存在,但是defaultdict()对象会根据需要调用配置的构造函数(dict)为该键生成一个新值。在

你必须为每个键创建每个空dict

Data = {}

Data['day1'] = {}

Data['day1']['e1'] = 4

相关问题 更多 >