Necesito delimitar la cadena que tiene una nueva línea. ¿Cómo lo lograría? Consulte el código a continuación.
Entrada:
data = """a,b,c
d,e,f
g,h,i
j,k,l"""
Salida deseada:
['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']
He probado los siguientes enfoques:
1. output = data.split('\n')
2. output = data.split('/n')
3. output = data.rstrip().split('\n')
python
string
python-2.7
Hariharan
fuente
fuente
repr(data)
?Respuestas:
str.splitlines
El método debería darte exactamente eso.fuente
str.splitlines
es que eliminará la final\n
si está presente. Es decir,'foo\nbar\n'.split() == ['foo', 'bar', '']
mientrasstr.splitlines('foo\nbar\n') == ['foo', 'bar']
str.split
, de forma predeterminada, se divide por todos los caracteres de espacio en blanco. Si la cadena real tiene otros caracteres de espacio en blanco, es posible que desee utilizarO como @Ashwini Chaudhary sugirió en los comentarios , puede usar
fuente
.splitlines
, ¿qué pasa si las cuerdas tienen espacios, etc.?split("\n")
. Essplitlines
mejor que.split("\n")
?\r\n
otros tipos de límites de línea.\n
, lasplitlines()
ignorará, mientrassplit("\n")
que tendrá una cadena vacía adicional""
al final del resultado.Si desea dividir solo por nuevas líneas , es mejor usar splitlines () :
Ejemplo:
Con split () también funciona:
Sin embargo:
fuente
data.split('\n')
?Existe un método específicamente para este propósito:
fuente
Aqui tienes:
fuente