2010-08-13 13 views

Antwort

21
mylist = [int(x) for x in '3 ,2 ,6 '.split(',')] 

Und wenn Sie nicht sicher sind Sie nur Ziffern haben werden (oder die anderen verwerfen):

mylist = [int(x) for x in '3 ,2 ,6 '.split(',') if x.strip().isdigit()] 
+3

Ich glaube, Sie haben es ein bisschen nach hinten: ' '3,2,6'.split (', ')' –

+1

@orangeoctopus Es funktioniert auf jeden Fall in Ordnung, 'int' umgebende Leerzeichen – delnan

+0

@orangeoctupus zu verwerfen - Ja Ich habe es bearbeitet, als ich das erkannt habe. Aber anscheinend bin ich schnell wie ein Fuchs, also zeigt es nicht, dass ich es bearbeitet habe (zumindest für mich ...);) –

6

Während eine individuelle Lösung, die Sie über Python lehren, für die Produktion Code Das csv Modul ist die beste Idee. Komma-getrennte Daten können komplexer werden als zunächst angezeigt.

+0

Ich frage mich, wie Komma getrennte ganze Zahlen jeden Komplex bekommen? –

+1

@Anurag: Wer hat gesagt, dass sie ganze Zahlen sein müssen? Das OP stellte nur Beispieldaten zur Verfügung ... – katrielalex

+0

@Annurag: "Lehre ihn zu fischen ..." - jemals diese Fabel gehört? Das versuche ich hier. Das Parsen einer Komma-Zeichenfolge ist selten * die * Aufgabe, die man zu lösen versucht, dahinter stehen komplexere Anforderungen. Wenn ich falsch liege, kein Schaden angerichtet, andere Antworten bieten die einfachere Methode –

13
map(int, myString.split(',')) 
+1

+1 für den funktionalen Stil zu lesen –

+5

@Matt: tatsächlich, während persönlich Ich liebe den funktionalen Stil, Liste Comprehensions sind mehr Pythonic –

+0

@Eli, stimme zu 100% –

Verwandte Themen