En la consola de Python, cuando escribo:
>>> "\n".join(['I', 'would', 'expect', 'multiple', 'lines'])
Da:
'I\nwould\nexpect\nmultiple\nlines'
Aunque esperaría ver tal salida:
I
would
expect
multiple
lines
¿Que me estoy perdiendo aqui?
La consola está imprimiendo la representación, no la cadena en sí.
Si prefijas print
, obtendrás lo que esperas.
Consulte esta pregunta para obtener detalles sobre la diferencia entre una cadena y la representación de la cadena. Súper simplificado, la representación es lo que escribirías en el código fuente para obtener esa cadena.
Olvidaste print
el resultado. Lo que se obtiene es el P
de RE(P)L
y no el resultado impreso.
En Py2.x deberías algo como
>>> print "\n".join(['I', 'would', 'expect', 'multiple', 'lines'])
I
would
expect
multiple
lines
y en Py3.X, imprimir es una función, por lo que debe hacer
print("\n".join(['I', 'would', 'expect', 'multiple', 'lines']))
Ahora esa fue la respuesta corta. Su intérprete de Python, que en realidad es un REPL, siempre muestra la representación de la cadena en lugar de la salida real que se muestra. Representación es lo que obtendría con la repr
declaración
>>> print repr("\n".join(['I', 'would', 'expect', 'multiple', 'lines']))
'I\nwould\nexpect\nmultiple\nlines'
Necesita print
obtener esa salida.
Deberías hacer
>>> x = "\n".join(['I', 'would', 'expect', 'multiple', 'lines'])
>>> x # this is the value, returned by the join() function
'I\nwould\nexpect\nmultiple\nlines'
>>> print x # this prints your string (the type of output you want)
I
would
expect
multiple
lines
Tienes que imprimirlo:
In [22]: "\n".join(['I', 'would', 'expect', 'multiple', 'lines'])
Out[22]: 'I\nwould\nexpect\nmultiple\nlines'
In [23]: print "\n".join(['I', 'would', 'expect', 'multiple', 'lines'])
I
would
expect
multiple
lines
Cuando lo imprime con esto print 'I\nwould\nexpect\nmultiple\nlines'
, obtendrá:
I
would
expect
multiple
lines
El \n
es un carácter de nueva línea especialmente utilizado para el marcaje DE FIN DE TEXTO. Significa el final de la línea o el texto. Esta característica es compartida por muchos lenguajes como C, C ++, etc.