python - 从 .txt 文件存储到列表计划中
问题描述
下面的第一部分通过按周分隔来完成我想要的工作,但当我尝试将它存储在迭代的时间表列表中时,
这是我的代码:
schedule_file = open("sch2019.txt", "r")
schedule_list = schedule_file.readlines()
for x in schedule_list:
这是代码的输出:
week 1 : { ('LAR','CP'), ('KCC','JJ'), ('NYG','DC'), ('BB','NYJ'), ('CIN','SS'), ('DB','OR'), ('WR','PE'), ('GBP','CB'), ('AF','MV'), ('PS','NEP'), ('HT','NOS'), ('IC','LAC'), ('TT','CLV'), ('SF','TBB'), ('DL','AC'), ('BR','MD') }
week 2 : { ('SS','PS'), ('BB','NYG'), ('DC','WR'), ('SF','CIN'), ('IC','TT'), ('JJ','HT'), ('PE','AF'), ('KCC','OR'), ('LAC','DL'), ('CB','DB'), ('AC','BR'),('NOS','LAR'), ('TBB','CP'), ('NEP','MD'), ('MV','GBP'),('CLV','NYJ') }
week 3 : {('NYJ','NEP'), ('PS','SF'), ('HT','LAC'),('NYG','TBB'), ('NOS','SS'), ('DL','PE'), ('OR','MV'), ('DB','GBP'),('LAR','CLV'), ('CB','WR'), ('CP','AC'), ('MD','DC'), ('BR','KCC'), ('CIN','BB'), ('AF','IC'), ('TT','JJ') }
week 4 : { ('TT','AF'), ('SS','AC'), ('CIN','PS'), ('NEP','BB'), ('CLV','BR'), ('OR','IC'),('TBB','LAR'), ('MV','CB'), ('CP','HT'), ('LAC','MD'), ('KCC','DL'), ('JJ','DB'), ('DC','NOS'), ('WR','NYG'), ('PE','GBP') }
我想将每周存储到一个列表中,但我不知道如何处理它。
我尝试做的是
schedule_file = open("sch2019.txt", "r")
schedule_list = schedule_file.readlines()
schedule = []
for x in schedule_list:
for i in x:
schedule.append(i)
print (schedule)
但它所做的只是进一步分离它。我如何将列表分成迭代以进行计划?
我希望它是什么样的:
Schedule[1]← {(LAR,CP), (KCC,JJ), (NYG,DC), (BB,NYJ), (CIN,SS), (DB,OR), (WR,PE),(GBP,CB), (AF,MV), (PS,NEP), (HT,NOS), (IC,LAC), (TT,CLV), (SF,TBB), (DL,AC),(BR,MD)}
Schedule[2]←{(SS,PS), (BB,NYG), (DC,WR), (SF,CIN), (IC,TT), (JJ,HT), (PE,AF), (KCC,OR),(LAC,DL), (CB,DB), (AC,BR), (NOS,LAR), (TBB,CP), (NEP,MD), (MV,GBP), (CLV,NYJ)}
其中 schedule[i] 的每次迭代都包含来自文本文件中相应周信息的值
解决方案
我认为这就是您所追求的,在这里工作 Repl.it 。
这会将每一行解析为一个灯具列表(假设我的输入文本文件格式正确)。然后将其存储在Dict
以周数为键的 a 中。
import re
with open('schedule.txt') as f:
schedule = f.readlines()
def line_parser(line):
p = re.compile("'[A-Z]{2,3}','[A-Z]{2,3}'")
fixtures = []
for match in p.findall(line):
fixtures.append(match)
return fixtures
schedule_list = {}
for week, line in enumerate(schedule):
schedule_list[week] = line_parser(line)
# Print the 10th fixture in week 3:
print(schedule_list[3][9])
# Output: 'LAC','MD'
我想您可以通过将每个灯具拆分为存储为字典的 home/away 字符串来进一步分解这一点,但我不确定您期望什么输出格式?
import re
with open('schedule.txt') as f:
schedule = f.readlines()
def line_parser(line):
p = re.compile("[A-Z]{2,3}','[A-Z]{2,3}")
fixtures = []
for match in p.findall(line):
sides = match.split("','")
fixtures.append({
"home": sides[0],
"away": sides[1]
})
return fixtures
schedule_list = {}
for week, line in enumerate(schedule):
schedule_list[week] = line_parser(line)
# Print the 10th fixture in week 3:
print(schedule_list[3][9])
# Output: {'home': 'LAC', 'away': 'MD'}
推荐阅读
- android-studio - 如何在 Windows 中使用 android studio 配对 mac 以测试颤振应用程序
- python - 将输入输入到 keras 序列模型中
- sql - 与 PostgreSQL 具有一对多关系的 SQL 查询
- c++ - 在 Crypto++ 中使用 Curve25519 签名
- python - 使用映射将 DataFrame 从数字转换为字符串
- c - 关于手册页中无效使用的 setbuf 示例的混淆
- java - 在 2 个 REST 资源之间创建关系
- react-apollo - 加载获取分页请求时显示的文本
- c - 为什么这不会产生错误?
- c# - SystemUnathorizedAccessException:在 Mac 上的 Visual Studio Code 中拒绝访问路径