我需要划分字符串,其中包含新的行。我怎么才能做到呢?请参考以下代码。
输入:
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')
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由所有空格字符分隔。如果实际字符串有任何其他空格字符,则可能需要使用
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 方法应该正好给出这个结果。
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']
希望这能帮到别人。