python - 将标题的文本文件读入字典

标签 python python-3.x dictionary

我有这个目的地文本文件,我需要将它们读入字典并根据起点和目的地对它们进行排序。

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/

相关文章:

python - Python和openCV数组IndexError:列表分配索引超出范围

python - 使用python对列表中相同键的多个值求和

python - Pymongo - 如何将文档插入到集合的前面?

python - 如何格式化用符号和零填充的整数?

c++ - 如何创建迭代器来解决这个问题?

python - 将混合数据类型的元组列表转换为所有字符串

python - 第一批后 Tensorflow ResourceExhaustedError

python - 对由字符串元组作为键和整数作为值组成的字典进行双重排序,首先按元组中的第一个字符串,然后按值整数Python 3

python - 来自 pandas 数据框列的字典

python - 如何在 Python 中添加包含字典值的列