用嵌套循环创建字典

时间:2020-09-23 11:26:37

标签: python loops for-loop nested

我试图用嵌套循环创建字典,但是失败了。我不知道怎么了:

dict={}
for i in range(0,4):
        node_1=str(i)
        for j in range(0,4):
            node_2=str(j)
            dict[node_1]=[node_2]         
print(dict)

它应该已经创建:

{'0':['1','2','3'],'1':['0','2','3'],'2':['0','1','3']}

2 个答案:

答案 0 :(得分:1)

在代码中,您要用新的j值覆盖先前的j值。相反,您应该将其添加到列表中。

mydict = {}
for i in range(0,4):
    node_1 = str(i)
    mydict[node_1] = [] # assign empty list
    for j in range(0,4):
        node_2 = str(j)
        mydict[node_1].append(node_2) # append in list

print(mydict)

输出:

{'0': ['0', '1', '2', '3'], '1': ['0', '1', '2', '3'], '2': ['0', '1', '2', '3'], '3': ['0', '1', '2', '3']}

注意:您不应将变量dict命名为内置方法的名称。

答案 1 :(得分:1)

是这样吗?:

d = {}

for i in range(0,4):
        node_1=str(i)
        for j in range(0,4):
            node_2=str(j)
            if node_1 not in d:
                d[node_1] = []
            d[node_1].append(node_2)
print(d)

请不要将dict用作变量名。