python - 在文本文件中搜索值,然后找到值所在的标头
问题描述
我有一些拼车信息的文本文件,其中汽车的司机在顶部,乘客列在司机下方并缩进,我想要一个可靠地找到乘客的系统,然后它会找到谁是车司机。这是它的外观示例。
Car: Steven
Jerry
Elaine
George
Car: Ross
Rachel
Joey
Car: Steve
Karl
Eric
Red
Ryan
我想要一个函数,它采用 Eric 之类的名称并返回 Steve,或者采用 Joey 并返回 Ross。该文件实际上会更长,但这是它看起来的一个片段。
解决方案
假设您可以将所有内容都放入内存中,并且数据看起来像
data = """Car: Steven
Jerry
Elaine
George
Car: Ross
Rachel
Joey
Car: Steve
Karl
Eric
Red
Ryan
"""
然后您可以通过在以下位置拆分来定义一个函数"Car:"
:
def find_driver(data, person):
for people in [car.split() for car in data.split("Car:")[1:]]:
if person in people:
return people[0]
return None
然后
find_driver(data, "Eric")
find_driver(data, "Joey")
返回想要的结果。
注意分割"Car:"
总是会给出一个空白的第 0 个元素,所以我们将其切掉。然后,我们使用正常拆分数据(在换行符和空格处)car.split()
。现在我们只搜索一个人在什么车里。
推荐阅读
- r - 有没有办法在几列上执行类似(但不相等)的操作?
- cron - 如何为自动调度hangfire作业添加观察者?
- python - 如果我正在制作 pip 模块,需要将哪些文件上传或添加到 git 存储库
- mongodb - mongo db,查询靠近多个质心的位置?
- azure-active-directory - Azure AD 是否可以在正文或标头中隐藏或传递 clientid 和权限
- javascript - 为什么可以使用具有新功能的计算器进行计算?
- python - 如何使用 sublime 构建系统(Sublime Text)在 cmd 中运行 Python 脚本?
- javascript - ParserError:第 1 行第 23 列的语法错误
- apache - Httpd 显示错误 500,但仅在访问日志中,而不在错误日志中。那是什么意思?
- javascript - TypeError: _Firebase__WEBPACK_IMPORTED_MODULE_6__.db.collection 不是函数 firebase