更新嵌套字典中的值

2024-05-18 22:13:44 发布

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

我不知道如何更新嵌套字典中的值,该值总是被覆盖。在

我有一个清单date_list = ['2018AUG15', '2017APR22', '2017MAR05', '2016FEB10', '2016FEB09']

我正在构建一个嵌套dict,到目前为止

import collections

date_list = ['2018AUG15', '2017APR22', '2017MAR05', '2016FEB10', '2016FEB09']
month_ditc = collections.defaultdict(dict)

for x in date_list:

    year = x[:4]
    month = x[4:-2]
    day = x[7:]

    month_ditc[year][month]= day

print month_ditc

它产生了

^{pr2}$

这和我想要的差不多。年和月在我循环中更新,但日期不是。在

我试过以下几种方法,但还是一无所获-

 try:
     month_ditc[year][month] = day
 except KeyError:
     month_ditc[year] = {month:day}

我希望结果是

defaultdict(<type 'dict'>, {'2017': {'APR': '22', 'MAR': '05'}, '2016': {'FEB': '09','10'}, '2018': {'AUG': '15'}})

Tags: inimportfordate字典yearcollectionsdict
1条回答
网友
1楼 · 发布于 2024-05-18 22:13:44

您期望的输出不是有效的字典,我想您需要一个列表,如果键不在dict中,您可以尝试使用setdefault()方法来设置默认值

setdefault(key[, default])

If key is in the dictionary, return its value. If not, insert key with a value of default and return default. default defaults to None.

import collections

date_list = ['2018AUG15', '2017APR22', '2017MAR05', '2016FEB10', '2016FEB09']
month_ditc = collections.defaultdict(dict)

for x in date_list:

    year = x[:4]
    month = x[4:-2]
    day = x[7:]

    month_ditc[year].setdefault(month, []).append(day)
print dict(month_ditc)

结果:

^{pr2}$

相关问题 更多 >

    热门问题