我发现一些输入没有存储在 Python 3 的字典中。
运行这段代码:
N = int(input()) #How many lines of subsequent input
graph = {}
for n in range (N):
start, end, cost = input().split()
graph[start] = {end:cost}
#print("from", start, ":", graph[start])
print(graph)
有输入:
3
YYZ SEA 500
YYZ YVR 300
YVR SEA 100
我的程序输出:
{'YYZ': {'YVR': '300'}, 'YVR': {'SEA': '100'}}
似乎提到 YYZ 的第一行被提到 YYZ 的第二行覆盖了,因为字典中没有 SEA 的痕迹。
是什么导致了这个问题以及如何解决它?
您正在覆盖键的值'YYZ'
具有重置价值。这是字典的预期行为。我的建议是使用字典列表而不是单个项目的值,因此将您的分配代码替换为类似这样的代码
graph.setdefault(start, []).append({end:cost})
尝试一下,看看这是否适合您的用例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)