嗨,我为自己做了这个小练习,我想提取出每行中的最后一个数字。在此文本文件中,该文件有5行,每行6个数字,中间用空格隔开。我做了一个循环,从第5个空格开始获取所选行的所有剩余字符。它适用于每行打印(findtext(0到3)),但如果最后一个数字少于3个字符,则最后一行除外……这是怎么回事?我不明白
text = open("text","r")
lines = text.readlines()
def findtext(c):
count = 0
count2 = 0
while count < len(lines[c]) and count2<5:
if lines[c][count] == " ":
count2=count2+1
count=count+1
return float(lines[c][count:len(lines[c])-1])
print(findtext(0))
答案 0 :(得分:0)
您提出的解决方案对我来说似乎不是Pythonic。
with open('you_file') as lines:
for line in lines:
# Exhaust the iterator
pass
# Split by whitespace and get the last element
*_, last = line.split()
print(last)
几件事:
split
而不是计算文字的空白字符答案 1 :(得分:0)
with open('file') as f :
numbers = f.readlines()
last_nums = [ line.split()[-1] for line in numbers ]
line.split()
将使用空格作为分隔符将字符串拆分为列表的元素(如果未在其中添加任何参数),
[-1]
将为您获取此列表的最后一个元素