初始化下级理解的下级

时间:2019-04-24 11:04:17

标签: python-3.x dictionary initialization

我初始化一个约有100个键的字典;使用字典理解将某些键初始化为下级;特别是其中一个键有八个下标作为值,其中一个与其他七个下标是异常的。我想提供最佳处理方法的指导。

这是一个关键以及我如何对其进行初始化:

d = {...,
     ...,
    "activity": {
        k: {int(v): 0 for v in range(0, 24)}
        for k in (
            "rts_all",
            "rts_thirty_days",
            "years",
            "seven_days",
            "thirty_days",
            "ninety_days",
            "all",
        )
        },
        ...,
}

但是,“活动”键还需要另一个键,其下标为值:

"weekdays" = {
    k: 0 for k in ("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun")
}

此刻,我正在初始化字典的其余部分,然后最终执行以下操作:

d["activity"]["weekdays"] = {
    k: 0 for k in ("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun")
}

这很好用,并且相当清楚,但对我来说似乎还是临时的。

是否有更整洁的机制? 我是否缺少明显的东西? 我在想什么吗?

1 个答案:

答案 0 :(得分:0)

一种优化方法是使用dict.fromkeys,它将创建一个所有值为0的字典

dct = dict.fromkeys(["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], 0)
print(dct)
#{'Mon': 0, 'Tue': 0, 'Wed': 0, 'Thu': 0, 'Fri': 0, 'Sat': 0, 'Sun': 0}
d['activity'].update({'weekdays':dct})

另一项更改是使用dict.update更新词典