我有这个目的地文本文件,我需要将它们读入字典并根据起点和目的地对它们进行排序。
JFK MCO
ORD DEN
ORD HOU
DFW PHX
JFK ATL
ORD DFW
ORD PHX
ATL HOU
DEN PHX
PHX LAX
JFK ORD
DEN LAS
DFW HOU
ORD ATL
LAS LAX
ATL MCO
HOU MCO
LAS PHX
STL PDX
预期结果:
{'JKF' : {'MCO', 'ATL','ORD'}, 'ORD' : {'DEN' , 'HOU' , 'DFW' , 'PHX' , 'ATL' ........}}
主要思想是起点在左边,终点在右边。将目的地分组到每个起点。
最佳答案
您可以遍历这些行,拆分这些行并使用 dict.setdefault
将目的地存储到以起始位置为键的集合字典中:
d = {}
with open('file.txt') as file:
for line in file:
orig, dest = line.split()
d.setdefault(orig, set()).add(dest)
d
变成:
{'JFK': {'ORD', 'ATL', 'MCO'}, 'ORD': {'DEN', 'HOU', 'ATL', 'DFW', 'PHX'}, 'DFW': {'PHX', 'HOU'}, 'ATL': {'MCO', 'HOU'}, 'DEN': {'PHX', 'LAS'}, 'PHX': {'LAX'}, 'LAS': {'PHX', 'LAX'}, 'HOU': {'MCO'}, 'STL': {'PDX'}}
关于python - 将标题的文本文件读入字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54500229/