使用带 Python 的换行分隔符拆分字符串

我需要划分字符串,其中包含新的行。我怎么才能做到呢?请参考以下代码。

输入:

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

预期产出:

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

我尝试了以下方法:

1. output = data.split('\n')
2. output = data.split('/n')
3. output = data.rstrip().split('\n')
268665 次浏览
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由所有空格字符分隔。如果实际字符串有任何其他空格字符,则可能需要使用

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

或者作为 @ Ashwini Chaudhary 在评论中建议,您可以使用

print(data.splitlines())

给你:

>>> 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']
>>>

str.splitlines 方法应该正好给出这个结果。

>>> 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']

有一种专门用于这一目的的方法:

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

如果你想分割 只是换了新台词,你可以使用 Splitlines ():

例如:

>>> 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']

对于 Str.spli (),你的案例也是有效的:

>>> 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']

然而,如果你有空格(或制表符) ,它会失败:

>>> data = """
... a, eqw, qwe
... v, ewr, err
... """
>>> data
'\na, eqw, qwe\nv, ewr, err\n'
>>> data.split()
['a,', 'eqw,', 'qwe', 'v,', 'ewr,', 'err']

因为拆分得到一个字符串作为分隔符,所以应该有额外的反斜杠 Output = data.split (’n’)

我们也可以使用正则表达式的分割方法。

import re


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


output = re.split("\n", data)


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

希望这能帮到别人。