我有一個字符串 - 數據從* .TXT讀在轉換剝離串之間的空間,列出
21 197 251 251 253 107 0 0 0 0 0
要轉換到列表如下:
[21.0, 197.0, 251.0, 251.0, 253.0, 107.0, 0, 0, 0, 0, 0]
寫了這個功能,試圖選項#1,#2,和#3
def loadCsv(filename):
lines = csv.reader(open(filename, "rb"))
dataset = list(lines)
for i in range(len(dataset)):
#1 dataset[i] = [float(x) for x in dataset[i]]
#2 dataset[i] = [map(float, x.strip()) for x in dataset[i]]
#3 dataset[i]=[map(float, x.split()) for x in dataset[i]]
return datase
當我使用:
- 字符串顯然不能被轉換爲浮動,
Error I receive ValueError: invalid literal for float()
- 我認爲存在這樣導致它的元素之間的空間。
- 當我映射串使用此浮動,它適用於這個功能,但然後當我所說的數據進行分類,它呈現
ValueError: could not convert string to float: there is space that is causing that error
unhashable list error
def separateByClass(dataset):
separated = {}
for i in range(len(dataset)):
vector = dataset[i]
if (vector[-1] not in separated):
separated[vector[-1]] = []
separated[vector[-1]].append(vector)
return separated
有什麼想法?
I am updating loadCsv function as below which resolved the issue:
def loadCsv(filename):
lines = open(filename)
lines=lines.read()
dataset = list(lines.split())#list(lines)
for i in range(len(dataset)):
#dataset[i] = [float(x) for x in dataset[i]]
#dataset[i]=[map(float, x.strip()) for x in dataset[i]]
dataset[i]=[float(x) for x in dataset[i]]
return dataset
都在同一行或單獨行所有這些號碼? –
它的一個排出來多在txt文件 – lpt