Uso de la función map en Python para transformar listas

Clase 19 de 44Curso de Python: Comprehensions, Funciones y Manejo de Errores

Contenido del curso

Funciones

Manipulación de archivos y errores

Resumen

Transformar cada elemento de una lista es una de las operaciones más frecuentes en Python, y la función map permite hacerlo de forma elegante, concisa y aprovechando conceptos como higher order functions y lambda functions. Comprender cómo funciona map te ahorra líneas de código y te prepara para trabajar con estructuras de datos más complejas como diccionarios.

¿Qué es map y por qué se usa para transformar listas?

La función map tiene un propósito claro: aplicar una transformación a cada elemento de una lista y devolver una nueva lista con la misma cantidad de elementos [0:28]. Si entran cuatro elementos, salen cuatro elementos, pero transformados.

Una analogía sencilla lo ilustra bien: imagina una lista con ingredientes crudos —una vaca, un pollo, maíz y una papa—. Al pasar cada uno por la función "cocinar", obtienes una hamburguesa, un pollo asado y así sucesivamente [0:42]. El número de elementos no cambia, solo su forma.

¿Cómo se transforma una lista sin map?

La forma tradicional requiere tres pasos [1:42]:

  • Crear una lista vacía para almacenar los resultados.
  • Iterar con un for sobre la lista original.
  • Usar append para agregar cada elemento transformado.

python numbers = [1, 2, 3, 4] numbers_v2 = [] for i in numbers: numbers_v2.append(i * 2) print(numbers_v2) # [2, 4, 6, 8]

Funciona, pero ocupa varias líneas y obliga a gestionar manualmente la nueva lista.

¿Cómo se usa map con lambda para simplificar el código?

map es una higher order function: recibe una función como argumento y la aplica a cada elemento del iterable que le indiques [2:28]. Al combinarla con una lambda function, todo se resuelve en una sola línea:

python numbers_v3 = list(map(lambda i: i * 2, numbers)) print(numbers_v3) # [2, 4, 6, 8]

El detalle importante es que map devuelve un iterable, no una lista directamente. Por eso es necesario envolverlo con list() para obtener el resultado como lista [3:05].

  • No necesitas crear una lista vacía previamente.
  • No necesitas un bucle for explícito.
  • La lambda define la transformación: recibe i y retorna i * 2.

¿Puede map iterar dos listas al mismo tiempo?

Una capacidad muy útil de map es que acepta múltiples listas como argumento [4:05]. La lambda recibe tantos parámetros como listas le envíes.

python numbers_1 = [1, 2, 3, 4] numbers_2 = [5, 6, 7] result = list(map(lambda x, y: x + y, numbers_1, numbers_2)) print(result) # [6, 8, 10]

Aquí la operación suma elemento a elemento: 1+5, 2+6, 3+7. El resultado contiene solo tres elementos porque map se detiene en la lista más corta [4:48]. El cuatro de la primera lista no tiene pareja en la segunda, así que se ignora.

¿Qué pasa con el tamaño de las listas?

Este comportamiento es clave para evitar errores:

  • map itera hasta agotar la lista de menor longitud.
  • No lanza excepciones ni rellena con valores nulos.
  • El resultado siempre tendrá el tamaño de la lista más pequeña.

¿Cuándo conviene usar map en el día a día?

La verdadera potencia de map aparece cuando trabajas con listas de diccionarios, que es el caso más habitual en proyectos reales [5:23]. Datos provenientes de APIs, bases de datos o archivos JSON suelen llegar en ese formato, y map permite transformar cada registro de forma limpia.

Algunos puntos para recordar:

  • map siempre devuelve la misma cantidad de elementos que recibe.
  • Combínalo con list() para materializar el resultado.
  • Usa lambda functions para transformaciones simples y funciones definidas con def para lógica más compleja.
  • Al iterar varias listas, la más corta marca el límite.

Si ya dominas map con valores numéricos, el siguiente paso natural es aplicarlo a listas de diccionarios, donde cada transformación puede renombrar campos, calcular nuevos valores o filtrar propiedades. ¿Con qué tipo de datos te gustaría probarlo?