it-swarm.com.de

Teilen Sie den String mit einem Newline-Delimiter mit Python

Ich muss den String abgrenzen, der eine neue Zeile enthält. Wie würde ich es erreichen? Bitte beziehen Sie sich auf den folgenden Code.

Eingang:

data = """a,b,c
d,e,f
g,h,i
j,k,l"""

Ausgabe gewünscht:

['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']

Ich habe die folgenden Ansätze ausprobiert:

1. output = data.split('\n')
2. output = data.split('/n')
3. output = data.rstrip().split('\n')
76
Hariharan

str.splitlines Methode sollte Ihnen genau das geben.

>>> data = """a,b,c
... d,e,f
... g,h,i
... j,k,l"""
>>> data.splitlines()
['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']
144
wim

Wenn Sie nur durch Zeilenumbrüche teilen möchten, ist es besser, splitlines () zu verwenden:

Beispiel:

>>> data = """a,b,c
... d,e,f
... g,h,i
... j,k,l"""
>>> data
'a,b,c\nd,e,f\ng,h,i\nj,k,l'
>>> data.splitlines()
['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']

Mit split () funktioniert es auch:

>>> data = """a,b,c
... d,e,f
... g,h,i
... j,k,l"""
>>> data
'a,b,c\nd,e,f\ng,h,i\nj,k,l'
>>> data.split()
['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']

Allerdings:

>>> data = """
... a, eqw, qwe
... v, ewr, err
... """
>>> data
'\na, eqw, qwe\nv, ewr, err\n'
>>> data.split()
['a,', 'eqw,', 'qwe', 'v,', 'ewr,', 'err']
10
KiraLT
data = """a,b,c
d,e,f
g,h,i
j,k,l"""

print(data.split())       # ['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']

str.split wird standardmäßig durch alle Leerzeichen geteilt. Wenn die tatsächliche Zeichenfolge andere Whitespace-Zeichen enthält, können Sie diese verwenden

print(data.split("\n"))   # ['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']

Oder als @ Ashwini Chaudhary in den Kommentaren vorgeschlagen , können Sie verwenden

print(data.splitlines())
9
thefourtheye

Es gibt eine Methode speziell für diesen Zweck:

data.splitlines()
['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']
7
pajton

Bitte schön:

>>> data = """a,b,c
d,e,f
g,h,i
j,k,l"""
>>> data.split()  # split automatically splits through \n and space
['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']
>>> 
3
Games Brainiac