2014-11-06 61 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]