如何将嵌套的defaultdict()默认为指定长度的列表?

2024-09-27 21:34:02 发布

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

我想知道如何将嵌套的defaultdict默认为列表[0,0,0]。例如,我想将这个层次结构设为defaultdict。在

dic01 = {'year2017': {'jul_to_sep_temperature':[25, 20, 17], 
                      'oct_to_dec_temperature':[10,  8,  7]},
         'year2018': {'jan_to_mar_temperature':[ 8,  9, 10].
                      'apr_to_jun_temperature':[ 0,  0,  0]}
        }

为了使这个嵌套dictionary,我做了dic01 = defaultdict(dict),并添加了一个字典作为dic01['year2018']['jan_temperature'] = [8, 9, 10]。我的问题是,是否可以在不绑定[0,0,0]的情况下更新列表的每个元素。在其他工作中,如果我将defaultdict设为defaultdict(dict),那么在使用它之前,我必须绑定一个list[0,0,0],我希望跳过这个绑定过程。在

^{pr2}$

Tags: to列表层次结构dictoctmarsepjan
2条回答

不确定这是否比你试图避免的更优雅,但是:

dic01 = defaultdict(lambda: defaultdict(lambda: [0,0,0]))
dic01['year2018']['jul_to_sep_temperature'][0] = 25

通过传递lambda函数,您可以随意嵌套defaultdicts

您可以指定您想要一个defaultdict的默认值,该默认值为[0, 0, 0]

from collections import defaultdict

dic01 = defaultdict(lambda: defaultdict(lambda: [0, 0, 0]))

dic01['year2018']['jul_to_sep_temperature'][0] = 25

print(dic01)

印刷品

^{pr2}$

可以将其视为常规嵌套字典

相关问题 更多 >

    热门问题