gpt4 book ai didi

python - 在字典中分配嵌套的键和值

转载 作者:行者123 更新时间:2023-11-28 19:55:56 25 4
gpt4 key购买 nike

我需要将嵌套值分配给字典。为了便于理解,我简化了我的问题:

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

Data[day1][e1] = 4

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

我试着做这样的事情:

me1 = {e1 : 4}
me2 = {e2 : 5}
Data = {day1 : me1}
Data = {day2 : me2}

但是我没能成功;我写的所有东西都以某种方式覆盖了现有的值,或者不是我想要的。我可能遗漏了一些东西......

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

最佳答案

您需要在 Data 中存储一个新的字典才能使其工作:

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

但通常您会先测试一下该词典是否存在;使用 dict.setdefault() 使其成为一步过程:

if day1 not in Data
Data[day1] = {}
Data[day1][e1] = 4

collections.defaultdict() type使该过程自动化:

from collections import defaultdict

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

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

关于python - 在字典中分配嵌套的键和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22455384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com