我需要以以下形式输出
{0: {1:11,2:13}, 1: {0:11,3:14}}
但是结果
{0: {1:['11'],2:['13']}, 1: {0:['11'],3:['14']}}
使用这个
graph = {}
N,w = map(int,raw_input().split())
# print N, w
for x in range(0,C):
i,j,c = raw_input().split()
graph.setdefault(int(i), {}).setdefault(int(j),[]).append(w)
print graph
在输入
第一行:忽略N=4
,而C=4
是行数。
第二行:i
,j
是顶点,w
是边权重。
4 4
0 1 11
0 2 13
1 0 11
1 3 14
最佳答案
您正在以下行中的嵌套字典中将列表设置为值 -
graph.setdefault(int(i), {}).setdefault(int(j),[]).append(w)
这就是为什么你要在列表中获取值,如果你 100% 确定嵌套字典中的键:值对始终是唯一的,那么你可以简单地将值设置为键。示例-
graph.setdefault(int(i), {})[int(j)] = w
关于python - 用户输入的输出字典不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33326253/