我正在尝试使用以下代码创建以下嵌套的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 = {}
。这是为什么?感谢。
答案 0 :(得分:3)
这里的问题是,您没有在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}}
答案 1 :(得分:0)
首先,我运行了你的程序并打印了专辑,它打印了{0:1,1:1}而不是{}
第二件事,我可以从你的要求中理解的是,通过一般的方式,在循环遍历一系列数字时,你希望将该数字作为键和值作为包含键值对的字典,其中键的数量从0到那个数字和值为1.如果我错了,请纠正我。
所以正确的程序是:
feats = {}
for i in range(2):
feats[i] = feats.get(i, {})
for j in range(0,i+1):
feats[i][j] = 1
print feats
你可以用范围内的任何数字替换2并相应地得到答案。