2016-03-23 2 views
-2

Ich habe eine Liste, die als Ausgabe eines Python-Skripts in folgendem Format hergestellt:Streifen ein Listenelement für einen bestimmten Wert in Python zu extrahieren

[' (* 100.856 UnitA', ') [ 98.0%]', 
' (* 100.598 UnitB', ') [ 98.0%]', 
' (* 98.193 UnitC', ') [ 25.6%]'] 

Nun, ich bin daran interessiert, das Floating-Point zu setzen Werte in jedem Listenelement zu einer neuen Liste für die weitere Verarbeitung in einem Python-Skript. Gibt es einen Weg (eine eingebaute Python-Funktion vielleicht) kann ich den Fließkomma-Inhalt allein auf eine neue Liste strippen? Im obigen Beispiel wäre meine gewünschte Ausgabe wie:

[100.856,98.0,100.598,98.0,98.193,25.6] 

Wenn nicht eine eingebaute Funktion, jede andere alternative Art, wie ich dies erreichen kann?

+1

Dies könnte einfach in einer Schleife oder einem Listenverständnis erfolgen. Was hast du bisher versucht? – SiHa

+0

Ich versuchte mit Extend. Realisiert funktioniert nicht. Neu bei Python. Also, wollte die Möglichkeiten erkunden. –

Antwort

4

Mit einem RegexMuster von here werden die Schwimmer extrahieren und werfen nach Wunsch zu schweben:

In [153]: 
l=[' (* 100.856 UnitA', ') [ 98.0%]', 
' (* 100.598 UnitB', ') [ 98.0%]', 
' (* 98.193 UnitC', ') [ 25.6%]'] 
import re 
[float(re.findall(r'(-?\d+\.\d+)',x)[0]) for x in l] 

Out[153]: 
[100.856, 98.0, 100.598, 98.0, 98.193, 25.6] 

So ist die heikle Sache ist, dass Sie für die Ziffern \d suchen müssen, sondern auch für den Dezimalpunkt suchen und Nachlaufende Ziffern

Verwandte Themen