Guía definitiva para usar map() en Python: simplifica tus bucles ahora

| Última modificación: 26 de noviembre de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

Con la finalidad de brindarte código más eficiente, limpio y fácil de manener, te enseñaremos en el artículo de hoy cómo manejar el map() en Python por medio de una corta guía. Con esta función, de entre las funciones en Python, podrás transformar tus bucles en líneas de código mucho más efectivas.

map() en python

¿Qué es map() en Python?

La función map() en Python es una herramienta que te permite aplicar una función específica a cada elemento de un objeto iterable, ya sea una lista o una tupla. Grosso modo, transforma elementos de una colección de datos sin necesidad de usar bucles tradicionales.

Su sintaxis es la siguiente:

map(función, objeto_iterable)
  • función: Es la lógica que aplicarás a cada elemento del iterable.
  • objeto_iterable: Puede ser una lista, tupla u otro tipo de colección de datos.

El resultado de map () es un objeto especial que puedes convertir fácilmente en una lista o una tupla.

Pa entenderlo mejor, veamos un ejemplo en el que suponemos que tienes una lista de números y necesitas calcular su cuadrado:

def cuadrado(numero):
return numero * numero

lista = [1, 2, 3, 4, 5]
resultado = map(cuadrado, lista)

print(list(resultado)) # Salida: [1, 4, 9, 16, 25]

¡Así de simple! En lugar de escribir un bucle, map() hace todo el trabajo por ti.

¿Por qué deberías usar map() en lugar de un bucle for?

🔴 ¿Quieres Aprender a Programar con Python? 🔴

Descubre el Full Stack Jr. Bootcamp - Aprende a Programar desde Cero de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp Aprende a Programar desde Cero por una semana

Es cierto que los bucles for también pueden transformar datos. Sin embargo, map() tiene ventajas que le distinguen de otras formas:

  1. Menos líneas de código: Gracias al uso de map puedes evitar estructuras de bucles largas y repetitivas.
  2. Optimización de memoria: map() no crea una copia completa del iterable en la memoria, sino que genera los elementos bajo demanda.
  3. Legibilidad: Hace que el código sea más limpio y entendible.

Por ejemplo, con un bucle for:

lista = ["5", "6", "7"]
resultado = []

for elemento in lista:
resultado.append(int(elemento))

print(resultado) # Salida: [5, 6, 7]

Con map():

lista = ["5", "6", "7"]
resultado = map(int, lista)

print(list(resultado)) # Salida: [5, 6, 7]

¿Notas la diferencia? Menos líneas, más claridad.

Vamos a usar map() con funciones lambda

Una de las mejores prácticas al usar map() es combinarlo con funciones lambda, que son funciones anónimas definidas en una sola línea.

Veamos un ejemplo en el que queremos calcular el cubo de cada número en una lista:

lista = [1, 2, 3, 4, 5]
resultado = map(lambda x: x**3, lista)

print(list(resultado)) # Salida: [1, 8, 27, 64, 125]

Aquí hemos simplificado el código al máximo al usar una función lambda directamente dentro de map().

Algunas cosas para las que podemos usar el map() en Python

Transformación de datos

Convierte una lista de cadenas en una lista de enteros:

cadenas = ["10", "20", "30"]
enteros = map(int, cadenas)

print(list(enteros)) # Salida: [10, 20, 30]

Redondeo de números

Redondea cada número flotante de una lista:

numeros = [3.14159, 2.71828, 1.61803]
redondeados = map(round, numeros)

print(list(redondeados)) # Salida: [3, 3, 2]

Manipulación de cadenas

Convierte cada palabra a mayúsculas:

palabras = ["python", "es", "genial"]
mayusculas = map(str.upper, palabras)

print(list(mayusculas)) # Salida: ['PYTHON', 'ES', 'GENIAL']

¿Qué no puede hacer map()?

Aunque map() es una herramienta poderosa, no siempre es la mejor opción. Aquí hay algunas situaciones donde podrías preferir otras alternativas:

  • Si necesitas transformar datos con lógica compleja, los bucles for pueden ser más claros.
  • En algunos casos, usar list comprehensions puede ser más intuitivo y fácil de leer.

Por ejemplo, el caso del cuadrado de números puede reescribirse así:

lista = [1, 2, 3, 4, 5]
resultado = [x**2 for x in lista]

print(resultado) # Salida: [1, 4, 9, 16, 25]

El sector tecnológico está en constante crecimiento y por tanto siempre necesita profesionales que sepan hacer bien su trabajo. Por eso, en el día de hoy te queremos hacer una invitación para que te unas al bootcamp en programación inicial y descubras cómo el aprendizaje de programación puede ser el inicio de tu nueva carrera profesional. ¡Tu futuro profesional empieza aquí y ahora!

Ramón Maldonado

Full Stack Developer y Responsable de Formación base en KeepCoding.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Aprende a Programar desde Cero

Full Stack Jr. Bootcamp

Apúntate y consigue uno de los perfiles más demandados con Python en solo 4 meses.