用户输入的输出字典不正确

时间:2015-10-25 04:39:06

标签: python python-2.7 python-3.x dictionary graph

我需要输出格式为

{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
INPUT上的

第1行:忽略N=4,而C=4是行数 第二行:ij是顶点,w是边权重。

4 4
0 1 11
0 2 13
1 0 11
1 3 14

1 个答案:

答案 0 :(得分:3)

您在以下行中将列表设置为嵌套字典中的值 -

graph.setdefault(int(i), {}).setdefault(int(j),[]).append(w)

这就是你在列表中获取值的原因,如果你100%确定嵌套字典中的键:值对总是唯一的,那么你可以简单地将值设置为键。示例 -

graph.setdefault(int(i), {})[int(j)] = w