gpt4 book ai didi

python - 从文本中读取行并将其转换为 Python 嵌套字典

转载 作者:行者123 更新时间:2023-12-01 08:47:28 29 4
gpt4 key购买 nike

所以我有以下文本作为输入文件:

A B 1
A C 2
B C 1
B D 3
B E 2
C D 1
C E 2
D E 4
D F 3
E F 3

我想将所有这些值存储在 python 中的嵌套字典中:

{ 'A': {'B': 1, 'C': 2},
'B': {'C': 1, 'D': 3, 'E': 2},
'C': {'D': 1, 'E': 2},
'D': {'E': 4, 'F': 3},
'E': {'F': 3} }

这是我的代码,它正在读取输入文件并尝试将其转换为嵌套字典

inputfile = open("input.txt", "r")
lines = inputfile.readlines()
edges = []
for line in lines:
edges.append(line.split())
d = {}
nn={}

for i in edges:
nn.update({i[1]:i[2]})
d[i[0]] = nn
index+=1

print(d)

这是我的错误输出

{'A': {'B': '1', 'C': '1', 'D': '1', 'E': '4', 'F': '3'}, 'B': {'B': '1', 'C': '1', 'D': '1', 'E': '4', 'F': '3'}, 'C': {'B': '1', 'C': '1', 'D': '1', 'E': '4', 'F': '3'}, 'D': {'B': '1', 'C': '1', 'D': '1', 'E': '4', 'F': '3'}, 'E': {'B': '1', 'C': '1', 'D': '1', 'E': '4', 'F': '3'}}

我正在寻找一个正确的 if else 条件,该条件将在键相同时更新字典项,如果键不同则追加。提前致谢。

最佳答案

你可以这样做:

di={}
with open(fn) as f_in:
for line in f_in:
li=line.split()
di.setdefault(li[0],{})[li[1]]=li[2]

>>> di
{'A': {'B': '1', 'C': '2'}, 'B': {'C': '1', 'D': '3', 'E': '2'}, 'C': {'D': '1', 'E': '2'}, 'D': {'E': '4', 'F': '3'}, 'E': {'F': '3'}}

关于python - 从文本中读取行并将其转换为 Python 嵌套字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53244723/

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