Original article: Python Map – How to Map a List in Python 3.0, With Example Function Code

Si estás aprendiendo a programar, la función Map de Python es tu oportunidad para subir de nivel.

Imagina esto: quieres volverte un programador más eficiente. Quieres que tu código compile más rápido. Quieres impresionar a tus compañeros con tus sólidos conocimientos en programación. Si te sientes identificado, entonces llegaste al lugar indicado.

Antes de avanzar, necesitas entender que son las funciones e iterables:

Las funciones son código que ejecuta una tarea específica.

Ejemplos: len(), print(), str()

Los iterables son objetos que contienen uno o más miembros.

Ejemplos: listas, diccionarios, tuplas

La función de Map de Python es una función que te permite transformar un iterable completo usando otra función. El concepto clave aquí es transformación, que puede incluir, pero no se limita a:

  • Convertir cadenas a números
  • Redondear números
  • Obtener la longitud de cada miembro del iterable

Te estarás preguntando, ¿por qué no puedo solo hacerlo con un for loop?

La respuesta es que sí puedes. Pero usando la función Map de Python ahorra memoria (lo que significa que tu código correrá más rápido) y requiere menos código. Veamos un ejemplo para que entiendas a lo que me refiero.

Primero empecemos con un bucle For

Digamos que tienes una lista de cadenas que son números, pero necesitas convertir la lista de cadenas a enteros:

lista_de_cadenas = ["5","6","7","8","9", "10"]

Puedes utilizar una lista vacía y un bucle For para conseguirlo:

lista_de_cadenas = ["5","6","7","8","9", "10"]

resultado = []

for cadena in lista_de_cadenas:
    result.append(int(cadena))
    
print(resultado)

Si corres este ejemplo obtendrás:

Salida: [5, 6, 7, 8, 9, 10]

Qué ocurre tras bambalinas con el bucle For

Puedes estar satisfecho con el resultado, pero piensa lo que el código hizo.

Le diste instrucciones a la computadora de ir a través de cada elemento ("5", "6", "7", etc...), convertir el elemento y almacenarlo en una nueva lista. Aunque usar un bucle For para transformar una lista es funcional, no es óptimo.  

Función Map de Python (con código de ejemplo)

En su lugar, vamos a usar la función Map de Python para producir un resultado funcional y óptimo. Empecemos con nuestra lista de cadenas que necesitan ser convertidas:

lista_de_cadenas = ["5","6","7","8","9", "10"]

Luego, utilizaremos la función Map de Python para transformar la lista de cadenas a una lista de enteros:

resultado = map(int,lista_de_cadenas)

print(list(resultado))

Si corres el código de arriba obtendrás el mismo resultado:

Salida: [5, 6, 7, 8, 9, 10]

Antes de explicar por qué la función Map de Python es más óptima que usar un bucle For, veamos paso por paso lo que hicimos:

lista_de_cadenas = ["5","6","7","8","9", "10"]

Lo que hicimos fue crear una variable que almacena la lista de cadenas que queremos convertir a números.

resultado = map(int,lista_de_cadenas)

Dividamos el código de arriba, de adentro hacia afuera. La sintaxis de la función Map es la siguiente:

map(inserte función aquí, inserte iterable aquí)

map() es tan solo el nombre de la función Map de Python, nada elegante aquí.

inserte función aquí es el espacio donde escribirás la función. En el código de arriba usamos la función int. Pudimos haber usado cualquier otra función de Python comolen(), o escrito nuestra propia función y usarla también.

inserte iterable aquí es el espacio donde escribirás el iterable de tu elección. En el ejemplo insertamos nuestra lista lista_de_cadenas.

resultado es la variable donde estamos almacenando nuestros elementos recién transformados.

Avancemos a la última línea de código. De nuevo veremos de dentro hacia afuera:

print(list(resultado))

list() toma los elementos recién transformados de la iterable y le dice a nuestra computadora que esos elementos son parte de una lista.

print() imprime nuestra nueva lista!

Qué ocurre detrás de escena con la función Map de Python

En lugar de iterar a través de cada elemento de la lista de cadenas, la función Map de Python transformó la lista completa de cadenas en una lista de números. Ahorraste memoria y tu código se ejecuta más veloz.

Si quieres transformar, función Map de Python > bucles For

nubelson-fernandes-Y376h7VN27c-unsplash

Al final, la función Map de Python es más elegante que un bucle for y te ayudará a compilar tu código más rápido.

Usar la función Map de Python te ayudará a llevar tus habilidades de programación al siguiente nivel y convertirte en un mejor programador. En el proceso, podrás incluso impresionar a tus compañeros programadores con esta nueva habilidad.

Dicho eso, la función Map de Python es solo el principio. Hay muchos más trucos de Python que te ayudarán a escribir código más elegante y mejorar tus habilidades de programación.

¡Feliz día programando!