Я думаю, что вы, вероятно, видите проблему с форматом текстового файла, который вы прочитали.
Когда я запускаю фрагмент кода
rows = []
with open("test.txt", mode='r') as infile:
reader = csv.reader(infile, delimiter=" ")
for row in reader: # each row is a list
rows.append(row)
minimus = min(rows, key=lambda x: float(x[1]))
с вашим первым примером в test.txt
, но измененный, чтобы в первом столбце было целое число больше 100, я не воспроизводил ошибку,Точно так же, когда я запускаю этот фрагмент кода со вторым примером дословно, я не воспроизводю вашу ошибку.
Ошибка, которую вы видите
ValueError: could not convert string to float:
, показывает, что строка, которая не может быть преобразована,пустой.Если бы это была непустая строка, например, строка notafloat
, она бы выглядела как
ValueError: could not convert string to float: notafloat
Примером, когда столбец два будет пустой строкой, является наличие нескольких пробелов междупервый и второй столбец подряд.В этом случае вы можете использовать skipinitialspace=True
как параметр в csv.reader
, который пропустит любые дополнительные пробелы после разделителя.