所以我的想法是以这样的方式生成一个字典:
my_dict = {}
for x in range(len(something)):
for y in range(len(something_else)):
my_dict[x] = {}
my_dict[x][y] = {key: value}然而,当我尝试这样做时,我总是得到错误消息:
如果我使用字符串而不是整数,则KeyError: 0或KeyError:'0‘。
你知道我可能做错了什么吗?
发布于 2020-12-16 17:20:22
做你正在做的事情,你在每个y循环中“擦除”my_dict[x]。
尝试:
my_dict = {}
for x in range(len(something)):
for y in range(len(something_else)):
d = my_dict.setdefault(x, {})
d[y] = {key: value}或者:
my_dict = {}
for x in range(len(something)):
my_dict[x] = {}
for y in range(len(something_else)):
my_dict[x][y] = {}
for z in range(len(other)):
my_dict[x][y][z] = {key: value}发布于 2020-12-16 17:38:18
您可以使用collections.defaultdict轻松创建任意嵌套的字典
from collections import defaultdict
make_dict = lambda: defaultdict(make_dict)
my_dict = make_dict()my_dict[1][2][3] = 4 # wrap this inside a nested loop as deep as you like
my_dict
defaultdict(<function __main__.<lambda>()>,
{1: defaultdict(<function __main__.<lambda>()>,
{2: defaultdict(<function __main__.<lambda>()>,
{3: 4})})})https://stackoverflow.com/questions/65320409
复制相似问题