2016-11-23 3 views

Antwort

3

Sieht aus wie eine Aufgabe für literal_eval..

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

Dies wird Ihnen die Liste [875.5599999999476, -223155.0180000058, 766.8799999999985, 1830.867499999997] geben.

+1

Beachten Sie, dass 'literal_eval' wird auch eine Menge anderer Datentypen akzeptieren (obwohl das in Ordnung sein kann). –

+0

Ja wird es, aber es ist nicht gefährlich wie 'eval'. – Matthias

2

Ist es gültiger JSON? Wenn ja, könnten Sie json.loads() verwenden. Ansonsten:

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

das ist, was Sie wollen:

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

Ausgang:

[875.5599999999476, -223155.0180000058, 766.8799999999985, 1830.867499999997] 

oder jedes Element geteilt in einer Liste?

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

Ausgang:

875.5599999999476 
-223155.0180000058 
766.8799999999985 
1830.867499999997 
2

wahrscheinlich eine elegantere Art und Weise tun, aber vielleicht so etwas wie:

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

EDIT:

Wie unten in den Kommentaren erwähnt, ist die Der obige Code konvertiert die Zahlen in der Zeichenfolge nicht in Floats. Um dies zu tun, siehe unten:

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

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

+0

ah nett eins! Hätte daran gedacht! – RichSmith

+0

Wird es auch Zahlen in dieser Zeichenfolge in den entsprechenden Python-Typ konvertieren? – vaultah

Verwandte Themen