Подтвердить что ты не робот

Разделить строку, используя разделитель новой строки с Python

Я новичок в python. Мне нужно разграничить строку, в которой есть новая строка. Как я могу это достичь? См. Ниже код.

Input:

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')
4b9b3361

Ответ 1

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

Ответ 2

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())

Ответ 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']

Ответ 4

Здесь вы идете:

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

Ответ 5

Для этой цели существует специальный способ:

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