Cómo utilizar la función map() en Python
Aprenda a utilizar la función map() de Python. Domine la aplicación de funciones a iterables sin escribir bucles y compare mapas con listas por comprensión.
Descripción general
Al procesar colecciones de datos, a menudo necesitarás aplicar una transformación específica a cada elemento de un iterable. Por ejemplo, convertir una lista de números de cadenas a números enteros o normalizar una matriz de cadenas de base de datos convirtiéndolas a minúsculas. En lugar de escribir bucles `for` detallados, Python proporciona una herramienta incorporada llamada `map()`.
La función `map(function, iterable)` acepta una función de transformación y un iterable como argumentos. Aplica la función a cada elemento del iterable y devuelve un objeto iterador (un objeto `mapa`). Debido a que se devuelve como un iterador, los cálculos se ejecutan de manera perezosa: los elementos solo se procesan a medida que se itera sobre ellos, lo que ahorra memoria para conjuntos de datos grandes.
Para obtener una representación de lista del objeto de mapa inmediatamente, debe convertir el resultado usando el constructor `list()`: `list(map(func, data))`. Puede pasar cualquier función estándar, función de biblioteca estándar (como `str` o `len`) o funciones anónimas personalizadas declaradas con la palabra clave `lambda` directamente a `map()` para su ejecución en línea.
Código y salida de ejecución
Este script demuestra la modificación de colecciones usando la función map() con transformaciones de cadenas, la asignación de elementos de lista a números y el uso de devoluciones de llamadas lambda.
# 1. Map string conversion over a list of numbers
numbers = [1, 2, 3, 4]
string_numbers = list(map(str, numbers))
print("Mapped to strings:", string_numbers)
# 2. Square numbers using a lambda function inside map()
squared = list(map(lambda x: x**2, numbers))
print("Squared numbers:", squared)
# 3. Apply custom logic function to items
def normalize_name(name):
return name.strip().capitalize()
names = [" alice", "BOB ", " charlie "]
clean_names = list(map(normalize_name, names))
print("Clean names list:", clean_names)Mapped to strings: ['1', '2', '3', '4']
Squared numbers: [1, 4, 9, 16]
Clean names list: ['Alice', 'Bob', 'Charlie']Implementación paso a paso
- Identifique la función de transformación que desea aplicar a cada elemento de la colección.
- Llame a map(function_name, iterable) para crear un iterador diferido de elementos transformados.
- Envuelva la llamada map() dentro de list() si necesita acceder a todos los elementos como una lista estándar inmediatamente.
- Combine map() con funciones lambda para realizar transformaciones en línea rápidas y únicas.
Preguntas frecuentes
¿Es map() mejor que la lista por comprensión?
La comunidad generalmente considera que las listas por comprensión son más legibles y pitónicas. Sin embargo, map() puede ser más rápido cuando se aplica una función integrada existente (como map(str, list)) porque ejecuta bucles de código C optimizados.
¿Puede map() tomar múltiples iterables?
¡Sí! Si la función de transformación toma varios argumentos, puede pasar varios iterables a map(). Por ejemplo, map(lambda x, y: x + y, list1, list2) agregará elementos por pares.
Temas relacionados
Aprenda a utilizar funciones lambda en Python. Domine funciones anónimas, devoluciones de llamadas en línea y clasificación de datos de listas con claves lambda.
Cómo utilizar la comprensión de listas en PythonAprenda a utilizar listas por comprensión en Python. Escriba bucles concisos, aplique filtros condicionales y cree matrices con una sintaxis visual limpia.
Cómo utilizar la función filter() en PythonAprenda a utilizar la función filter() de Python para extraer elementos de colecciones. Compare el filtro con listas por comprensión y devoluciones de llamadas lambda.
Recursos recomendados de Python
Amplíe sus conocimientos con tutoriales interactivos relacionados, hojas de trucos y comparaciones de códigos.
Funciones de Python
Domina las funciones de Python. Aprenda a escribir código reutilizable usando def, definir argumentos, valores de retorno y comprender el alcance a nivel local y global.
Hoja de referencia de funciones del módulo matemático de Python
Guía de referencia rápida para la biblioteca estándar matemática de Python. Aprenda a utilizar funciones trigonométricas, logarítmicas, de redondeo y aritméticas.
Python vs JavaScript: ¿Qué lenguaje de programación es mejor?
Una comparación completa entre Python y JavaScript. Explore las diferencias de sintaxis, el rendimiento, los casos de uso (backend frente a frontend) y ejemplos de codificación.