假设我有这两个列表:
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},
}
您可以使用理解式:
>>> 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}}
此功能将帮助您:
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
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}}
创建子字典并复制它。