2014-11-06 113 views
-1

代码无效文字浮法(): '1' 的错误在Python

for i in range(num): 
      # for j in range(4): 
       lines = outf1.readline() 
       brr[i]= list(map(float, lines.split())) 

这是我的输入数据集

['1', '1.52101', '13.64', '4.49', '1.1', '71.78', '0.06', '8.75', '0', '0', '1'] 
['2', '1.51761', '13.89', '3.6', '1.36', '72.73', '0.48', '7.83', '0', '0', '1'] 
['3', '1.51618', '13.53', '3.55', '1.54', '72.99', '0.39', '7.78', '0', '0', '1'] 

我与SOM算法的工作。我有一个包含具有4或5个十进制值的浮点值的文件。我需要检索这些值并存储到数组中。

+2

那么,你所期望的'浮动( “[ '1',”)'评价是什么?当你说这是你的输入数据集时,你的意思是说你有字符串列表,或者看起来像字符串列表的字符串,还是......? 'outf1'从哪里来? – jonrsharpe 2014-11-06 11:20:20

+0

数据如何存储在文件中?你在说什么这个输入数据集?因为我可以看到你没有列出任何东西。 – 2014-11-06 11:21:52

+0

查看链接 - > http://archive.ics.uci.edu/ml/machine-learning-databases/glass/glass.data...这是我的数据集取自UCI repository.List is brr [i] 。我已经声明列表为arr = [[0 for x in range(num)] for x in range(num)] – Pooja 2014-11-06 11:29:15

回答

0

你似乎喂了split一条以['1'开头的行,所以当然这个方括号会成为一个问题。

快速修复是每行只有strip(以确保没有空白),然后删除第一个和最后一个字符以去除括号。

+0

感谢您的回复!我已经尝试过arr [i] = map(float,lines.strip()。split(','))..但是仍然存在相同的错误 – Pooja 2014-11-06 11:26:35

+0

你能建议如何摆脱括号...文件包含数据集带括号.. – Pooja 2014-11-06 11:39:04

1

ast.literal_eval()应该做的伎俩:

In [12]: line = "['1', '1.52101', '13.64', '4.49', '1.1', '71.78', '0.06', '8.75', '0', '0', '1']" 

In [13]: map(float, ast.literal_eval(line)) 
Out[13]: [1.0, 1.52101, 13.64, 4.49, 1.1, 71.78, 0.06, 8.75, 0.0, 0.0, 1.0]