在Python中动态创建嵌套字典

问题描述 投票:0回答:3

假设我有这两个列表:

top_levels = ["a", "b", "c"]
sub_levels = ["d", "e", "f"]

如何创建:

nested_dict = {
   "a": {"d": 0, "e": 0, "f": 0},
   "b": {"d": 0, "e": 0, "f": 0},
   "c": {"d": 0, "e": 0, "f": 0},
}
python python-3.x
3个回答
1
投票

您可以使用理解式:

>>> top_levels = ["a", "b", "c"]
>>> sub_levels = ["d", "e", "f"]
>>> {t: {s: 0 for s in sub_levels} for t in top_levels}
{'a': {'d': 0, 'e': 0, 'f': 0}, 'b': {'d': 0, 'e': 0, 'f': 0}, 'c': {'d': 0, 'e': 0, 'f': 0}}

0
投票

此功能将帮助您:

def func(top_levels, sub_levels):
    sub_level_dict = {}
    for sub in sub_levels:
        sub_level_dict[sub] = 0

    nested_dict = {}
    for top in top_levels:
        nested_dict[top] = sub_level_dict

    return nested_dict

0
投票
tops =['a','b','c']
subs = ['d','e','f']
sub_dict= {i:0 for i in subs}
nested = {t:sub_dict.copy() for t in tops}
print(nested)

{'a': {'d': 0, 'e': 0, 'f': 0}, 'b': {'d': 0, 'e': 0, 'f': 0}, 'c': {'d': 0, 'e': 0, 'f': 0}}

创建子字典并复制它。

© www.soinside.com 2019 - 2024. All rights reserved.