我试图用嵌套循环创建字典,但是失败了。我不知道怎么了:
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']}
答案 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用作变量名。