2012-11-01 8 views
7

Mögliche Duplizieren:
split a string in pythonWie konvertiert man eine Zeichenkette mit Newline-Zeichen in eine Liste in Python?

Ich möchte, dies ändern:

str = 'blue\norange\nyellow\npink\nblack' 

dazu:

list = ['blue','orange', 'yellow', 'pink', 'black'] 

ich einige versucht fo r und While-Schleifen und waren nicht in der Lage, es zu tun. Ich möchte nur, dass das Newline-Zeichen beim Triggern entfernt wird, um das nächste Element zu erstellen. Ich war zu verwenden, sagte:

list(str) 

die gibt

['b', 'l', 'u', 'e', '\n', 'o', 'r', 'a', 'n', 'g', 'e', '\n', 'y', 'e', 'l', 'l', 'o', 'w', '\n', 'p', 'i', 'n', 'k', '\n', 'b', 'l', 'a', 'c', 'k'] 

Danach benutze ich .remove() aber nur eine '\n' wird entfernt, und der Code wird komplizierter, die Farben zu buchstabieren.

+6

'str.split ('\ n')' – mgibsonbr

Antwort

10

Sie wollen your_str.splitlines() oder möglicherweise nur your_str.split('\n')

einen for-Schleife - nur für Lehr-Einsatz:

out = [] 
buff = [] 
for c in your_str: 
    if c == '\n': 
     out.append(''.join(buff)) 
     buff = [] 
    else: 
     buff.append(c) 
else: 
    if buff: 
     out.append(''.join(buff)) 

print out 
+0

Vielen Dank, Es klappt. Ich habe mich nur gefragt, ob es einen Weg gibt, dies zu tun, indem man For- oder While-Loops benutzt. –

+0

@IsraelCA - Sicher gibt es. Aber warum willst du? – mgilson

+0

@IsraelCA - Eine for-loop-Lösung hinzugefügt. Ich habe es nicht getestet, da ich gerade nicht mit Python an meinem Computer bin, aber ich denke, es sollte funktionieren. – mgilson

Verwandte Themen