Transformar una lista en cadena.

Arnau Sanchez arnau en ehas.org
Lun Sep 17 16:46:07 CEST 2007


> Necesito pasar los elementos de una lista a una única cadena de texto. 
> Creo que las cadenas son inmutables y el siguiente código no es válido:
> 
> lista = ['Ana\n', 'Pepe\n', 'Gloria\n', 'Pedro\']
>  for x in lista:
>    cadena = cadena + x
> print cadena

Si añades antes del bucle "cadena = ''" sí que será válido (pero no 
especules sobre ello, ¡pruébalo!), porque aunque las cadenas son 
inmutables, estás creando una nueva a cada iteración.

Pero este código es tan feo como ineficiente, un ejemplo clásico de lo 
que no es idiomático. Mírate guías sobre el tema, por ejemplo:

http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html

en este caso, sección: Building Strings from Substrings

> y que muestre lo siguiente:
> 
> 
> Ana
> pepe
> Gloria
> Pedro

Si realmente sólo quieres mostrar por pantalla lo que hay en una lista 
te será suficiente:

sys.stdout.writelines(lista)

arnau




Más información sobre la lista de distribución Python-es