在Python中使用换行分隔符拆分字符串

2024-10-06 12:36:15 发布

您现在位置: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')

Tags: 方法字符串代码outputdatasplitrstrip划界
3条回答

如果只想用换行符拆分,最好使用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']

使用split()也可以:

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

^{}方法应该正好给出这个结果。

>>> 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 = """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 suggested in the comments,您可以使用

print(data.splitlines())

相关问题 更多 >