我正在尝试使用以下代码创建以下嵌套的dict结构{0: {0: 1}, 1: {0: 1, 1: 1}}

feats = {}
for i in range(2):
    feat = feats.get(i, {})
    for j in range(i+1):
        feat[j] = 1


但是我得到的是feats = {}。这是为什么?谢谢。

最佳答案

这里的问题是,您没有在feat中存储feats值,因此在每次迭代之后它都会丢失。在迭代结束时,feats为空。

您可以按照以下方式修复代码:

feats = {}
for i in range(2):
    feat = feats.get(i, {})
    for j in range(i+1):
        feat[j] = 1
    feats[i] = feat

print(feats)


输出:

{0: {0: 1}, 1: {0: 1, 1: 1}}

10-06 03:54