2011-04-11 23 views
365

Possible Duplicate:

How to convert list into a string?Cómo convertir a la lista cadena

¿Cómo puedo convertir una lista en una cadena usando Python?

+8

'str (cualquier cosa)' van a convertir cualquier objeto de Python en su representación en cadena. Similar a la salida que obtienes si haces 'print (anything)', pero como una cadena. – ToolmakerSteve

+69

Este es el resultado de búsqueda de Google superior (en 2017) de cómo convertir una lista en una cadena en Python. Es embarazoso que la pregunta se marque como wazoo por ser un llamado duplicado. Miles de personas que encuentran esta respuesta a través de Google, sin duda, deben triunfar sobre lo que sea "pervertido" y sobre quién más sintió en 2011 cuando marcaron esto. Es un gran agujero en la utilidad del moderador de StackOverflow. – Emmel

+1

@Emmel Lo mismo aquí. Pero más aún, siempre me pregunté por qué muchas preguntas están marcadas como duplicadas cuando no lo son. Y generalmente están marcados por usuarios que ni siquiera leyeron las preguntas correctamente y las vincularon a un "duplicado" que responde a una pregunta completamente diferente. – Sayyora

Respuesta

662

Mediante el uso de ''.join

list1 = ['1', '2', '3'] 
str1 = ''.join(list1) 

o si la lista es de enteros, convertir los elementos antes de unirse a ellos.

list1 = [1, 2, 3] 
str1 = ''.join(str(e) for e in list1) 
+9

@SenthilKumaran Si la cadena resultante requiere elementos separados, como al pasar una lista de archivos a un proceso, entonces "" tiene que cambiarse a "" (observe el espacio entre las comillas). De lo contrario, terminas con una cadena contigua ("123" en lugar de "1 2 3"). Esto está bien si esa era la intención, pero debe mencionarse en la respuesta. – Bogdan

+0

Solo voy a señalar que la segunda forma funciona bien en casi cualquier lista (profundidad única). –

+0

Estaba buscando esto aquí y lo encontré [en otro lugar] (https://stackoverflow.com/questions/14560863/python-join-with-newline): si desea tener una nueva línea para cada elemento de lista (podría ser útil para listas de cadenas largas): 'print (" \ n ".join (['I', 'would', 'expect', 'multiple', 'lines']))' – Honeybear

115
>>> L = [1,2,3]  
>>> " ".join(str(x) for x in L) 
'1 2 3' 
44
L = ['L','O','L'] 
makeitastring = ''.join(map(str, L)) 
+2

arroja la excepción 'TypeError', como esto: En [15]: L = ['1', '2', '3'] En [16]: print '' .join (mapa (str, L)) ------ -------------------------------------------------- ------------------- TypeError Traceback (última llamada más reciente) en () ----> 1 imprimir '' .join (map (str, L)) TypeError: el objeto 'str' no está llamable – wgzhao

+6

Dado que no era específico en la pregunta ... Si desea conservar comillas simples en sus elementos de lista (para enviar una consulta a SQL, por ejemplo), puede hacer algo como esto. 'x = [1,2,3]' 'y =" '"+"', '". Join (mapa (str, x)) +"' "' – tandy