2016-11-23 232 views

回答

3

看起來像literal_eval.的任務。

from ast import literal_eval 
data = literal_eval('[875.5599999999476,-223155.0180000058,766.8799999999985,1830.867499999997]') 

這會給你的名單[875.5599999999476, -223155.0180000058, 766.8799999999985, 1830.867499999997]

+1

注意'literal_eval'也接受了很多其他數據類型(儘管這可能是好的)。 –

+0

是的,但它並不危險,因爲'eval'。 – Matthias

2

JSON有效嗎?如果是這樣,你可以使用json.loads()。否則:

s = '[875.5599999999476,-223155.0180000058,766.8799999999985,1830.867499999997]' 
lst = [float(item) for item in s[1:-1].split(',') 
1

這是你想要的東西:

l = [875.5599999999476,-223155.0180000058,766.8799999999985,1830.867499999997] 
print (l) 

輸出:

[875.5599999999476, -223155.0180000058, 766.8799999999985, 1830.867499999997] 

或列表中分裂的每個項目?

l = [875.5599999999476,-223155.0180000058,766.8799999999985,1830.867499999997] 
for x in l: 
    print(x) 

輸出:

875.5599999999476 
-223155.0180000058 
766.8799999999985 
1830.867499999997 
2

可能做的更優雅的方式,但也許是這樣的:

x.strip("[").strip("]").split(",") 

編輯:

正如下面的評論指出上面的代碼不會將字符串中的數字轉換爲浮點數。要做到這一點,見下圖:

[float(i) for i in x.strip("[").strip("]").split(",")] 
+2

'x [1:-1] .split(',')'? – Mohammad

+0

啊不錯的一個!應該有這個想法! – RichSmith

+0

它是否也將該字符串中的數字轉換爲適當的Python類型? – vaultah

相關問題