如何在 space 之后阅读 Python 中的下一个 space
How to read after a space until the next space in Python
我有这个程序:
import sys
import itertools
from itertools import islice
fileLocation = input("Input the file location of ScoreBoard: ")
input1 = open(fileLocation, "rt")
amountOfLines = 0
for line in open('input1.txt').readlines( ):
amountOfLines += 1
timestamps = [line.split(' ', 1)[0][0:] for line in islice(input1, 2, amountOfLines)]
teamids = [line.split(' ', 1)[0][0:] for line in islice(input1, 2, amountOfLines)]
print(teamids)
和这个文本文件:
1
5 6
1 5 1 5 0
1 4 1 4 1
2 1 2 1 1
2 2 3 1 1
3 5 2 1 1
4 4 5 4 1
对于 teamids,我希望它在第一个 space 之后开始阅读并到下一个 space,从第二行开始,我已经实现了但不知道如何实现从第一个 space 到下一个开始阅读。对于时间戳,我已经做到了这一点,但只是从第一个字符开始到第一个 space,并且不知道如何为 teamids 执行此操作。将不胜感激
这是一个展示 zip
转置数组的好用例的建议:
lines = open(fileLocation, 'r').readlines()[2:]
array = [[int(x) for x in line.split()] for line in lines]
transpose = list(zip(*filter(None, array)))
# now we can do this:
timestamps = transpose[0] # (1, 1, 2, 2, 3, 4)
teamids = transpose[1] # (5, 4, 1, 2, 5, 4)
这利用了 zip(*some_list)
returns some_list
.
的转置这一事实
请注意,您获得的列数将等于最短行的长度。这就是为什么我包含对 filter
的调用以删除由空行引起的空行的原因之一。
我有这个程序:
import sys
import itertools
from itertools import islice
fileLocation = input("Input the file location of ScoreBoard: ")
input1 = open(fileLocation, "rt")
amountOfLines = 0
for line in open('input1.txt').readlines( ):
amountOfLines += 1
timestamps = [line.split(' ', 1)[0][0:] for line in islice(input1, 2, amountOfLines)]
teamids = [line.split(' ', 1)[0][0:] for line in islice(input1, 2, amountOfLines)]
print(teamids)
和这个文本文件:
1
5 6
1 5 1 5 0
1 4 1 4 1
2 1 2 1 1
2 2 3 1 1
3 5 2 1 1
4 4 5 4 1
对于 teamids,我希望它在第一个 space 之后开始阅读并到下一个 space,从第二行开始,我已经实现了但不知道如何实现从第一个 space 到下一个开始阅读。对于时间戳,我已经做到了这一点,但只是从第一个字符开始到第一个 space,并且不知道如何为 teamids 执行此操作。将不胜感激
这是一个展示 zip
转置数组的好用例的建议:
lines = open(fileLocation, 'r').readlines()[2:]
array = [[int(x) for x in line.split()] for line in lines]
transpose = list(zip(*filter(None, array)))
# now we can do this:
timestamps = transpose[0] # (1, 1, 2, 2, 3, 4)
teamids = transpose[1] # (5, 4, 1, 2, 5, 4)
这利用了 zip(*some_list)
returns some_list
.
请注意,您获得的列数将等于最短行的长度。这就是为什么我包含对 filter
的调用以删除由空行引起的空行的原因之一。