2010-01-19 16 views
13

,geteilt eine Zeichenfolge in Python

Ich habe eine Zeichenfolge in Python sagen a="Show details1\nShow details2\nShow details3\nShow details4\nShow details5\n"

Wie teilen wir die oben mit dem Begrenzer \n (a Newline).

sollte das Ergebnis als ['Show details1', 'Show details2', ..., 'Show details5']

+1

tun Sie es [ "Show" sein wollen, „details1 "," show "," details2 ", ...] oder [" show details1 "," show details2 ", ...] –

+0

Ist es wörtlich '\ n', oder handelt es sich um ein Newline-Zeichen? – ezod

+0

@ezod: '\ n' ist ein Zeichen für eine neue Zeile – SilentGhost

Antwort

15

Wenn Sie nur mit dem Hinter Newline betroffen sind, können Sie tun:

a.rstrip().split('\n') 

See, str.lstrip() und str.strip() für Variationen.

Wenn Sie mehr werden in der Regel durch überflüssige Zeilenumbrüche betroffen leer Produkte produzieren, können Sie tun:

filter(None, a.split('\n')) 
+0

Danke, das ist, was ich gesucht habe ........................... – Hulk

+0

Danke @ddaa. Es hat sehr geholfen –

0

Versuch:

a.split('\n') 
+0

Dies funktioniert nicht. Ich bekomme das Ergebnis als ['Details anzeigen', 'Details anzeigen', ''] 1 weiteres Element – Hulk

+0

Also das letzte Element ignorieren? Ihre Eingabezeichenfolge hat eine leere Zeichenfolge nach der letzten \ n. – Ken

20

Verwendung a.splitlines(). Dadurch erhalten Sie eine Liste der einzelnen Zeilen. Um Ihr "Soll" -Ergebnis zu erhalten, fügen Sie " ".join(a.splitlines()) hinzu, und um alle in Kleinbuchstaben wie gezeigt zu erhalten, sieht die ganze Enchilada wie " ".join(a.splitlines()).lower() aus.

+0

aus Neugier, wie schlecht ist diese Leistung klug? –

+0

Paul, ich habe die Informationen aus dem OP-Kommentar in eine andere Antwort integriert. Er scheint nicht den "beitreten" Teil davon zu wollen ... –

+0

@Idan, es ist viel schnell. Auf meinem Rechner teilt es die 10MB-Zeichenkette 'test this \ n' * int (1e6) 'in 280ms oder 28ns pro Char. Haben Sie ein Leistungsproblem mit dieser Funktion? –

1
a.split('\n') 

würde einen leeren Eintrag als das letzte Mitglied der Rückkehr

list.so verwenden

a.split('\n')[:-1]

Verwandte Themen