Вы должны быть в состоянии сделать что-то вроде этого:
lines = []
with open('data.txt') as file:
for line in file:
if line.startswith('1'):
lines.append(line.split())
best_match = max(lines, key=lambda k: int(k[2]))
После прочтения файла lines
будет выглядеть примерно так:
>>> pprint.pprint(lines)
[['1', 'Human', '100', 'xxx'],
['1', 'Goat', '95', 'yyy'],
['1', 'Pig', '90', 'zzz']]
И затем вы хотите получитьзапись от lines
, где значение int
третьего элемента является наибольшим, что можно выразить так:
>>> max(lines, key=lambda k: int(k[2]))
['1', 'Human', '100', 'xxx']
Так что в конце этого best_match
будет список сданные из интересующей вас строки.
Или, если вы хотите получить действительно сложную информацию, вы можете получить строку за один (сложный) шаг:
with open('data.txt') as file:
best_match = max((s.split() for s in file if s.startswith('1')),
key=lambda k: int(k[2]))