Dominando la función map() de Python: sintaxis, ejemplos y mejores prácticas
Dominando la función map() de Python: sintaxis, ejemplos y mejores prácticas
La función integrada map() de Python aplica una función a cada elemento de un iterable (lista, tupla, conjunto, cadena, diccionario, etc.) y devuelve un nuevo iterable. Es una piedra angular para la programación de estilo funcional en Python.
Qué aprenderás
- Sintaxis y parámetros principales
- Cómo funciona
map()internamente - Uso de
map()con funciones integradas - Aplicación de
map()a cadenas, listas, tuplas, diccionarios y conjuntos - Aprovechamiento de expresiones lambda con
map() - Combinación de múltiples iteradores en una sola llamada
Sintaxis
map(funcion, iterable1, iterable2, ... iterableN)
Parámetros
- funcion: Un callable obligatorio que se aplicará a cada elemento.
- iterable(s): Uno o más iterables. La función recibe un elemento de cada iterable por llamada.
Valor de retorno
El resultado es un objeto map —un iterable perezoso que produce elementos transformados. Conviértelo a lista, tupla o conjunto para consumir los valores.
Cómo funciona map()
Ejemplo simple que eleva al cuadrado cada número de una lista:
def cuadrado(n):
return n * n
mi_lista = [2, 3, 4, 5, 6, 7, 8, 9]
actualizado = map(cuadrado, mi_lista)
print(list(actualizado)) # [4, 9, 16, 25, 36, 49, 64, 81]
El objeto map es perezoso; convertirlo a lista fuerza la evaluación.
Uso de map() con funciones integradas
Combina map() con cualquier integrada que acepte un solo argumento. Por ejemplo, redondear números flotantes:
valores = [2.6743, 3.63526, 4.2325, 5.9687967, 6.3265, 7.6988, 8.232, 9.6907] redondeados = map(round, valores) print(list(redondeados)) # [3, 4, 4, 6, 6, 8, 8, 10]
Map sobre cadenas
Las cadenas son iterables, así que map() puede transformar cada carácter o palabra.
def a_mayusculas(s):
return s.upper()
texto = "bienvenido a tutoriales guru99!"
print("".join(map(a_mayusculas, texto))) # BIENVENIDO A TUTORIALES GURU99!
Map sobre listas de números
def por_diez(n):
return n * 10
nums = [2, 3, 4, 5, 6, 7, 8, 9]
print(list(map(por_diez, nums))) # [20, 30, 40, 50, 60, 70, 80, 90]
Map sobre tuplas
def a_mayusculas_str(s):
return s.upper()
lenguajes = ("php", "java", "python", "c++", "c")
print(list(map(a_mayusculas_str, lenguajes))) # ['PHP', 'JAVA', 'PYTHON', 'C++', 'C']
Map sobre diccionarios y conjuntos
Al iterar sobre un diccionario, map() recibe sus claves. Para un conjunto, el orden es arbitrario.
def por_diez(n):
return n * 10
conjunto_ejemplo = {2, 3, 4, 5, 6, 7, 8, 9}
print(sorted(map(por_diez, conjunto_ejemplo))) # [20, 30, 40, 50, 60, 70, 80, 90]
Uso de funciones lambda
Las funciones anónimas mantienen el código conciso:
nums = [2, 3, 4, 5, 6, 7, 8, 9] print(list(map(lambda x: x * 10, nums))) # [20, 30, 40, 50, 60, 70, 80, 90]
Múltiples iteradores
Ejemplo 1: Sumar dos listas
def sumar(a, b):
return a + b
lista1 = [2, 3, 4, 5, 6, 7, 8, 9]
lista2 = [4, 8, 12, 16, 20, 24, 28]
print(list(map(sumar, lista1, lista2))) # [6, 11, 16, 21, 26, 31, 36]
Ejemplo 2: Concatenar elementos de lista y tupla
def concatenar(a, b):
return f"{a}_{b}"
letras = ['a', 'b', 'b', 'd', 'e']
marcas = ('PHP', 'Java', 'Python', 'C++', 'C')
print(list(map(concatenar, letras, marcas)))
# ['a_PHP', 'b_Java', 'b_Python', 'd_C++', 'e_C']
Conclusiones clave
map()transforma cada elemento de un iterable con una función dada.- Devuelve un iterador perezoso; conviértelo a
list,tupleosetpara materializar resultados. - Compatible con cualquier callable —incluyendo integradas, funciones de usuario y lambdas.
- Soporta múltiples iterables; la función debe aceptar un número coincidente de argumentos.
- Ideal para código limpio de estilo funcional y procesamiento eficiente de grandes conjuntos de datos.
python
- Sobrecarga de operadores en C++: Guía práctica con ejemplos de código
- Funciones en C++ Explicadas con Ejemplos de Código Prácticos
- Funciones lambda en Python: Guía práctica de funciones anónimas
- Generadores en Python: Iteración Eficiente y Casos de Uso Avanzados
- Explicación de Closures en Python: Cómo las Funciones Anidadas Capturan Variables
- Dominando Decoradores en Python: Mejora Funciones con Técnicas Expertas
- Función print() en Python: Guía Práctica con Ejemplos
- Domine el Método strip() de Python: Guía Completa y Ejemplos Prácticos
- Domine str.count() en Python: Cómo Contar Caracteres y Subcadenas con Ejemplos
- Domine el Formateo de Strings en Python con format(): Ejemplos Claros
- Domine el Método String.find() en Python: Sintaxis, Ejemplos y Alternativas