gpt4 book ai didi

python-3.x - python - 如何在循环中创建字典字典

转载 作者:行者123 更新时间:2023-12-01 01:44:31 25 4
gpt4 key购买 nike

我正在尝试从文件生成城市图。
每个readline()我得到三个值,a , b , 和 c .ab是字符串、城市名称和 cinta之间的路径成本和 b .
我如何存储 a , b , c所以我得到类似的东西

graph = {
'a1': {'b1': c1, 'b1': 5, 'a2': c2},
'a2': {'a1': c2},
'b1': {'a1': c1},
}

这是我的代码的一部分:
dict = dict()   #dictionary for storing values
while (True):
new_path = file.readline()
if new_path == "":
break
new_path = new_path.rstrip().split(", ")
a = new_path[0][2:len(new_path[0]) - 1] #start town
b = new_path[1][1:len(new_path[1]) - 1] #end town
c = new_path[2][0:len(new_path[2]) - 1] #path cost
print(a+" "+b+" "+c) #this prints Arlington Chelmsford 4

......
由于我不知道该键是否已经在字典中,如果键不在 dict.keys() 中,我尝试添加具有空值的键。 ,然后 update()会奇怪地运行并给我某种列表。
我是 python 新手,所以请向我解释如何创建这样一个不包含任何 [] 的图形。符号中。谢谢一百万!!

我想要的最终结果是这样的:
{'Arlington': {'Chelmsford': 4, 'Berkshire': 10}, 'Chelmsford': {'Arlington': 4, 'Berkshire': 5}, 'Berkshire': {'Arlington': 10, 'Chelmsford': 5}}

最佳答案

您可以使用以下循环设置 graph双向字典:

graph = {}
for line in file:
a, b, c = line.rstrip().split(', ')
graph.setdefault(a, {})[b] = c
graph.setdefault(b, {})[a] = c

这样给定的文件内容:
Arlington, Chelmsford, 4
Arlington, Berkshire, 10
Chelmsford, Berkshire, 5
graph会成为:
{'Arlington': {'Chelmsford': '4', 'Berkshire': '10'}, 'Chelmsford': {'Arlington': '4', 'Berkshire': '5'}, 'Berkshire': {'Arlington': '10', 'Chelmsford': '5'}}

关于python-3.x - python - 如何在循环中创建字典字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52509373/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com