# Issue

This Content is from Stack Overflow. Question asked by Witchery

I have a txt file with this structure of data:

3
100 name1
200 name2
50 name3
2
1000 name1
2000 name2
0

The input contains several sets. Each set starts with a row containing one natural number N, the number of bids, 1 ≤ N ≤ 100. Next, there are N rows containing the player’s price and his name separated by a space. The player’s prize is an integer and ranges from 1 to 2*109.

Expected out is:
Name2
Name2

How can I find the highest price and name for each set of data?

I had to try this:(find the highest price)

``````offer = []
name = []

with open("futbal_zoznam_hracov.txt", "r") as f:
for line in f:
maximum = []
while not line.isdigit():
price = line.strip().split()[0]
offer.append(int(price))
break
maximum.append(max(offer[1:]))
print(offer)
print(maximum)

``````

This creates a list of all sets but not one by one. Thank you for your advice.

# Solution

You’ll want to manually loop over each set using the numbers, rather than a for loop over the whole file

For example

``````with open("futbal_zoznam_hracov.txt") as f:
while True:
try:  # until end of file
bids = int(next(f).strip())
if bids == 0:
continue  # or break if this is guaranteed to be end of the file
max_price = float("-inf")
max_player = None
for _ in range(bids):
player = next(f).strip().split()
price = int(player[0])
if price > max_price:
max_price = price
max_player = player[1]
print(max_player)
except:
break
``````

``` This Question was asked in  StackOverflow by  Witchery and Answered by OneCricketeer It is licensed under the terms of
CC BY-SA 2.5. - CC BY-SA 3.0. - CC BY-SA 4.0.```