Preciso delimitar a string que possui uma nova linha. Como eu o alcançaria? Consulte o código abaixo.
Entrada:
data = """a,b,c
d,e,f
g,h,i
j,k,l"""
Resultado desejado:
['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']
Eu tentei as abordagens abaixo:
1. output = data.split('\n')
2. output = data.split('/n')
3. output = data.rstrip().split('\n')
python
string
python-2.7
Hariharan
fonte
fonte
repr(data)
?Respostas:
str.splitlines
método deve fornecer exatamente isso.fonte
str.splitlines
é que removerá o final,\n
se estiver presente.'foo\nbar\n'.split() == ['foo', 'bar', '']
str.splitlines('foo\nbar\n') == ['foo', 'bar']
str.split
, por padrão, divide por todos os caracteres de espaço em branco. Se a string real tiver qualquer outro caractere de espaço em branco, você pode querer usarOu como @Ashwini Chaudhary sugeriu nos comentários , você pode usar
fonte
.splitlines
, e se as cordas tiverem espaços, etc.split("\n")
. Ésplitlines
melhor do que.split("\n")
?\r\n
outros tipos de limites de linha também.\n
,splitlines()
irá ignorá-la, enquantosplit("\n")
terá uma string vazia adicional""
no final do resultado.Se você deseja dividir apenas por novas linhas , é melhor usar linhas de divisão () :
Exemplo:
Com split () funciona também:
Contudo:
fonte
data.split('\n')
?Existe um método específico para este propósito:
fonte
Aqui está:
fonte