Результаты split()
представляют собой список значений разделения, и, вероятно, именно поэтому вы получаете эту ошибку.
Например, если вы сделаете '-0.2'.split()
, вы получите список с однимзначение ['-0.2']
.
РЕДАКТИРОВАТЬ: Ага!С вашим входным файлом, похоже, это проблема: -0.733029194040.765257900121
.Я думаю, что вы хотите сделать эти два отдельных числа с плавающей точкой?
Предполагая, что исправленный файл выглядит так:
-0.0783532095182 -0.99415440702 -0.692972552716 -0.639273674023 -0.733029194040 -0.765257900121 -0.755438339963
-0.144140594077 -1.06533353638 -0.366278118372 -0.746931508538 -1.02549039392 -0.296715961215
-0.0915937502791 -1.68680560936 -0.955147543358
-0.0488457137771 -0.0943080192383 -0.747534412969 -1.00491121699
-1.43973471463
-0.0642611118901 -0.0910684525497
-1.19327387414 -0.0794696449245
-1.00791366035 -0.0509749096549
-1.08046507281 -0.957339914505 -0.861495748259
Следующий код больше не будет генерировать это исключение:
f = open('clusters_scores.out','r')
#first, extract all of the sim values
val = []
for line in f:
linevals = line.split()
print linevals
val += linevals
print val
val = map(float, val)
maxv = max(val)
minv = min(val)
setrange = float(maxv) - float(minv)
Я изменил его, чтобы взять результат списка из split () и объединить его со списком, а не добавить его, что сработает, если в вашем файле есть допустимые входные данные.