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

标签 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

在输入

第一行:忽略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/

相关文章:

python - NamedTuple 声明并在一行中使用

Python 食谱第三版 : Why does this star notation and line split return such a detailed output?

python - 如何在 python 中从 json 获取输入的随机回复

python - 使用python在excel中转​​换dicom标签时出错

python - 如何汇总CSV列?

python - 使用 Python Pandas 获取数据框中所有列的名称和行数

python - 使用 python 和 PIL 模块导入 PPM 图像

python - 在给定的时间和分钟使用 crontab 时,周期性任务不起作用

python - 能够绘制为列表,无法绘制为 Pandas 系列

python - 如何从 Python 2.7 中的 csv 读取数据中找到最大数量?