Вы можете легко перевести этот список в числа с плавающей точкой:
>>> nums = ['3.7', '-22', '3500', '38', '-11.993', '2200', '-1', '3400', '3400', '-3400', '-22', '12', '11', '10', '9.0']
>>> map(float, nums)
[3.7, -22.0, 3500.0, 38.0, -11.993, 2200.0, -1.0, 3400.0, 3400.0, -3400.0, -22.0, 12.0, 11.0, 10.0, 9.0]
Но, похоже, проблема в том, что строки в вашем файле не содержат отдельных чисел с плавающей точкой.Когда вы вызываете float(number)
, number
- это строка из файла, которая (из ошибки) содержит три разделенных пробелом числа «3,7 -22 3500».
Вам нужно вызвать функцию float
после разбиения:
for line in f:
for numberString in line.split()
number = float(numberString)
if(number > 0)
numbers.append(number)
Или, более функционально:
for line in f:
numbers.extend([n for n in map(float, line.split()) if n > 0])