C贸mo convertir una lista de enteros en una lista de cadenas en Python

Rate this post

English version of article (English): https://blog.finxter.com/how-to-convert-an-integer-list-to-a-string-list-in-python/

La forma m谩s pit贸nica de convertir una lista de enteros ints en una lista de cadenas es usar el c贸digo de una l铆nea strings = [str(x) for x in ints]. Recorre todos los elementos de la lista ints y convierte cada elemento de la lista x en una cadena utilizando el constructor str(x).

Este art铆culo muestra las formas m谩s sencillas de convertir una lista unidimensional que consta solo de enteros en una lista de cadenas.

Problema: dada una lista de n煤meros enteros [1, 2, 3]. 驴C贸mo convertirlo en una lista de cadenas ["1", "2", "3"]?

M茅todo 1: Comprensi贸n de listas

Supongamos que tenemos una lista:

a = [4, 3, 2, 1, 10, 14, -14]

Ahora, comprobamos el tipo del primer elemento de la lista:

print(type(a[0]))
# <class 'int'>

Aplicamos la funci贸n incorporada str() y obtenemos una lista de cadenas mediante comprensi贸n de listas:

print([str(x) for x in a])
# ['4', '3', '2', '1', '10', '14', '-14']

? 馃挕 La comprensi贸n de listas es una forma compacta de crear listas. La f贸rmula simple es [expresi贸n + contexto]. Expresi贸n: 驴Qu茅 hacer con cada elemento de la lista? Contexto: 驴Qu茅 elementos seleccionar? El contexto consta de un n煤mero arbitrario de declaraciones for e if.

Puedes verme explicar la comprensi贸n de listas en este v铆deo:

Comprobamos el tipo de los n煤meros en la nueva lista:

A = [str(x) for x in a]
print(type(A[0]))
# <class 'str'>

La funci贸n incorporada str convierte un entero en una representaci贸n de cadena de ese entero. Por lo tanto, nos ayuda a crear una nueva lista de cadenas de la lista de enteros en una sola l铆nea de c贸digo.

M茅todo 2: Funci贸n map

La funci贸n incorporada map est谩 bien optimizada y es eficiente; cuando se llama, los elementos de la lista se recuperan en el momento de acceder. Por lo tanto, s贸lo un elemento se almacena y procesa en la memoria, lo que permite que el programa no almacene la lista completa de elementos en la memoria del sistema.

Aplicamos a la misma lista a el siguiente c贸digo:

a = [4, 3, 2, 1, 10, 14, -14]
print(list(map(str, a)))
# ['4', '3', '2', '1', '10', '14', '-14']

La funci贸n map() devuelve un objeto iterable map que necesitamos convertir en una lista usando el constructor incorporado list() .

M茅todo 3: Bucle for

Por supuesto, tambi茅n puedes convertir una lista de enteros en una lista de cadenas usando un simple bucle for. Esto es lo que har铆a la mayor铆a de la gente que viene de un lenguaje de programaci贸n como Java y C++, ya que a煤n no conocen la forma m谩s pit贸nica utilizando comprensi贸n de listas (ver el M茅todo 1).

a = [4, 3, 2, 1, 10, 14, -14]
strings = []

for element in a:
    strings.append(str(element))

print(strings)
# ['4', '3', '2', '1', '10', '14', '-14']

Este m茅todo b谩sico para convertir una lista de enteros en una lista de cadenas consta de tres pasos:

  • Crear una lista vac铆a con strings = [].
  • Iterar sobre cada elemento entero usando un bucle for como for element in list.
  • Convertir el entero en una cadena usando str(element) y a帽adirlo a la nueva lista de cadenas usando el m茅todo list.append() .

M茅todo 4: Formateo de cadenas para la conversi贸n personalizada de cadenas

Si esto no te basta, por ejemplo, necesitas un formato espec铆fico para las cadenas convertidas, como s贸lo dos d铆gitos despu茅s del punto decimal, deber铆as echar un vistazo a las potentes capacidades de formateo de cadenas de Python.

Por ejemplo, para convertir una lista de enteros en una lista de cadenas con solo dos d铆gitos, usa el m茅todo string.format():

a = [4, 3, 2, 1, 10, 14, -14]
strings = ['{:.2f}'.format(x) for x in a]
print(strings)
# ['4.00', '3.00', '2.00', '1.00', '10.00', '14.00', '-14.00']

? La funci贸n incorporada de Python format(valor, especificaci贸n) transforma un formato de entrada en uno de salida definido por ti. En concreto, aplica la especificaci贸n de formato al valor del argumento y devuelve una representaci贸n formateada del valor. Por ejemplo, format(42, 'f') devuelve la representaci贸n de cadena '42 .000000'.

Puedes verme presentando las capacidades de formateo en esta breve gu铆a:

Para mejorar tus habilidades de Python de la manera m谩s sencilla, si茅ntete libre de unirte a mi academia de correo electr贸nico sin coste con una gran cantidad de contenido gratuito y chuletas, 隆si a煤n no lo has hecho! 馃檪Si quieres ir a por todas y aprender Python mientras te pagan durante el proceso, echa un vistazo a mi Curso de Freelancer en Python 鈥 隆la formaci贸n n煤mero uno del mundo para desarrolladores aut贸nomos!