Python Función map() con EJEMPLOS

⚡ Resumen inteligente

Python La función map() aplica una función determinada a cada elemento de un iterable, como una lista, tupla, conjunto, diccionario o cadena. Devuelve un objeto map perezoso que se puede convertir con list() o iterar mediante un bucle.

  • 🔢 Sintaxis: La función map() toma una función más uno o más iterables y aplica esa función a cada elemento.
  • 🔁 Valor devuelto: map() devuelve un objeto map perezoso, así que envuélvalo en list(), tuple() o set() para ver los resultados.
  • 🧩 Iterables: Las listas, las tuplas, los conjuntos, los diccionarios y las cadenas de texto funcionan como entradas para la función map().
  • lambda: Combinar map() con una función lambda evita definir una función con nombre independiente para transformaciones simples.
  • Múltiples iterables: Pasar varios iterables aplica la función a todos ellos en paralelo, detenerseping en el menor tiempo posible.
  • 🤖 Asistencia de IA: Los asistentes de IA, como GitHub Copilot, generan llamadas a la función map(), y las transformaciones de estilo map alimentan las canalizaciones de datos en el aprendizaje automático.

Python función mapa()

Sintaxis

map(function, iterator1,iterator2 ...iteratorN)

Parámetros

Aquí hay dos parámetros importantes:

  • función: Una función obligatoria que se debe pasar a map(), la cual se aplicará a todos los elementos disponibles en el iterador.
  • iterador: Un objeto iterable obligatorio. Puede ser una lista, una tupla, etc. Se pueden pasar varios objetos iteradores a la función map().

Valor de retorno

La función map() aplica la función dada a todos los elementos dentro del iterador y devuelve un objeto de mapa iterable, es decir, una tupla, una lista, etc.

¿Cómo funciona la función map()?

La función map() recibe dos entradas: una función y un objeto iterable. La función que se le pasa a map() es una función normal, y esta itera sobre todos los valores presentes en el objeto iterable.

Por ejemplo, imagina que tienes una lista de números y quieres encontrar el cuadrado de cada uno de ellos.

Para obtener el resultado, necesitamos una función que devuelva el cuadrado del número dado. La función es la siguiente:

def square(n):
	return n*n

La lista de elementos para los que queremos encontrar el cuadrado es la siguiente:

my_list = [2,3,4,5,6,7,8,9]

Ahora vamos a usar la función integrada map() para obtener el cuadrado de cada uno de los elementos de my_list.

El código final es el siguiente:

def square(n):
    return n*n
my_list = [2,3,4,5,6,7,8,9]
updated_list = map(square, my_list)
print(updated_list)
print(list(updated_list))

Salida:

<map object at 0x0000002C59601748>
[4, 9, 16, 25, 36, 49, 64, 81]

La salida de la función map(), como se ve arriba, es un objeto mapa que se muestra en la pantalla como .

Deberás iterar sobre la salida de map() usando un bucle for o el método list() para obtener el resultado final. En el código, he usado list() para mostrar los valores de la lista proporcionada.

Así que usando la función map(), podemos obtener el cuadrado de cada número. La lista dada a map() fue [2,3,4,5,6,7,8,9], y usando la función square(), la salida que obtuvimos es [4, 9, 16, 25, 36, 49, 64, 81].

La función map() aplica la función square() a todos los elementos de la lista. Por ejemplo, toma la variable my_list y actualiza la lista con el cuadrado de cada número. El resultado se almacena en la variable updated_list.

Usando mapa() con Python funciones integradas

El Python La función map() es una función incorporada y también se puede usar con otras funciones incorporadas disponibles en PythonEn este ejemplo, vamos a hacer uso del Python round() es una función integrada que redondea los valores dados.

Ejemplo:

La lista que tengo es my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907]. Necesito los valores redondeados para cada elemento presente en la lista, así que usaremos round() como función para map().

my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907]
updated_list = map(round, my_list)
print(updated_list)
print(list(updated_list))

Salida:

<map object at 0x000000E65F901748>
[3, 4, 4, 6, 6, 8, 8, 10]

La función round() se aplica a todos los elementos de la lista y devuelve una lista con todos los valores redondeados, como se muestra en la salida.

Usando map() con una cadena como iterador

También podemos hacer uso de map() en una cadena. En PythonUna cadena se comporta como un array, por lo que podemos usarla fácilmente dentro de map().

En este ejemplo, tenemos una función llamada `myMapFunc()` que se encarga de convertir la cadena dada a mayúsculas. Esta función se pasa a la función `map()`. La función `map()` se encargará de convertir la cadena dada a mayúsculas pasándole la cadena a `myMapFunc()`.

def myMapFunc(s):
    return s.upper()
my_str = "welcome to guru99 tutorials!"
updated_list = map(myMapFunc, my_str)
print(updated_list)
for i in updated_list:
    print(i, end="")

Salida:

<map object at 0x000000DF2E711748>
WELCOME TO GURU99 TUTORIALS!

Usando map() con una lista de Numbers

Para trabajar con una lista en map(), tomaremos una lista de números y multiplicaremos cada número de la lista por 10.

La lista que vamos a usar es [2,3,4,5,6,7,8,9]. La función myMapFunc() se encarga de multiplicar el número dado por 10. Esta función se pasa a map() junto con la lista.

Ejemplo:

def myMapFunc(n):
    return n*10

my_list = [2,3,4,5,6,7,8,9]

updated_list = map(myMapFunc, my_list)
print(updated_list)
print(list(updated_list))

Salida:

<map object at 0x000000EE2C061898>
[20, 30, 40, 50, 60, 70, 80, 90]

El resultado que observamos es que cada número de la lista se multiplica por 10.

Usando map() con Tuple

Una tupla es un objeto en Python que tiene elementos separados por comas y encerrados entre paréntesis. En este ejemplo, tomaremos una tupla con valores de cadena. La función que utilizaremos convertirá los valores dados a mayúsculas.

Ejemplo:

def myMapFunc(n):
    return n.upper()

my_tuple = ('php','java','python','c++','c')

updated_list = map(myMapFunc, my_tuple)
print(updated_list)
print(list(updated_list))

Salida:

<map object at 0x0000009C3C3A16A0>
['PHP', 'JAVA', 'PYTHON', 'C++', 'C']

El resultado que obtenemos es una tupla con todos los valores convertidos a mayúsculas.

Usando map() con Diccionario

A diccionario en Python Se crea usando llaves ({}). Dado que el diccionario es un iterador, puedes usarlo dentro de la función map(). Ahora usemos un diccionario como iterador dentro de map().

El siguiente ejemplo muestra el funcionamiento de un iterador de diccionario dentro de map():

def myMapFunc(n):
    return n*10
my_dict = {2,3,4,5,6,7,8,9}
finalitems = map(myMapFunc, my_dict)
print(finalitems)
print(list(finalitems))

Salida:

<map object at 0x0000007EB451DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]

Usando map() con Set

Un conjunto en Python es una colección no ordenada de elementos entre llaves ({}). Dado que set() también es un iterador, puedes usarlo dentro de la función map().

Aquí tienes un ejemplo práctico de cómo usar un conjunto como iterador dentro de map():

def myMapFunc(n):
    return n*10
my_set = {2,3,4,5,6,7,8,9}
finalitems = map(myMapFunc, my_set)
print(finalitems)
print(list(finalitems))

Salida:

<map object at 0x000000AC8F05DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]

Usando map() con la función Lambda

In Python, las expresiones lambda se utilizan para construir funciones anónimas. Tendrá que usar la palabra clave lambda tal como usa def para definir funciones normales.

En este ejemplo, vamos a usar la función lambda dentro de map(). La función lambda multiplicará cada valor de la lista por 10.

Ejemplo:

my_list = [2,3,4,5,6,7,8,9]
updated_list = map(lambda x: x * 10, my_list)
print(updated_list)
print(list(updated_list))

Salida:

<map object at 0x000000BD18B11898>
[20, 30, 40, 50, 60, 70, 80, 90]

Uso de múltiples iteradores dentro de la función map()

Ejemplo 1: Pasar dos iteradores de lista a map()

Puedes enviar más de un iterador, es decir, una lista, una tupla, etc., todo al mismo tiempo a la función map().

Por ejemplo, si quieres sumar dos listas, puedes hacerlo usando la función map(). Vamos a usar dos listas: my_list1 y my_list2.

En el ejemplo siguiente, el primer elemento de my_list1 se suma al primer elemento de my_list2. La función myMapFunc() recibe elementos de my_list1 y my_list2 y devuelve la suma de ambos.

Aquí tienes un ejemplo práctico de cómo sumar dos listas dadas utilizando la función map().

def myMapFunc(list1, list2):
    return list1+list2

my_list1 = [2,3,4,5,6,7,8,9]
my_list2 = [4,8,12,16,20,24,28]

updated_list = map(myMapFunc, my_list1,my_list2)
print(updated_list)
print(list(updated_list))

Salida:

<map object at 0x0000004D5F751860>
[6, 11, 16, 21, 26, 31, 36]

Ejemplo 2: Pasar una tupla y un iterador de lista a map()

Vamos a utilizar una lista y un iterador de tuplas en la función map(). La función que se le pasa a map(), myMapFunc(), obtendrá los elementos de la lista y la tupla. Los elementos se unirán con un guion bajo (_). A continuación se muestra un ejemplo práctico:

def myMapFunc(list1, tuple1):
    return list1+"_"+tuple1

my_list = ['a','b', 'b', 'd', 'e']
my_tuple = ('PHP','Java','Python','C++','C')

updated_list = map(myMapFunc, my_list,my_tuple)
print(updated_list)
print(list(updated_list))

Salida:

<map object at 0x00000059F37BB4E0>
['a_PHP', 'b_Java', 'b_Python', 'd_C++', 'e_C']

Preguntas Frecuentes

Ambas aplican una operación a cada elemento. Una comprensión de lista suele ser más legible y devuelve una lista directamente, mientras que map() devuelve un objeto de mapa perezoso y puede ser más rápido al reutilizar una función con nombre existente.

No. La función map() nunca modifica el iterable original. Lee cada elemento, aplica la función y genera un nuevo objeto map perezoso, dejando intacta la lista, tupla o cadena de origen.

In Python 3. La función map() es perezosa: devuelve un objeto map que calcula los valores solo al iterar sobre él. Esto ahorra memoria con grandes cantidades de datos. Para obtener los resultados, envuélvalo en una lista (list()) o recorra el objeto en un bucle.

La función map() transforma cada elemento, filter() conserva solo los elementos que pasan una prueba y reduce() (de functools) combina todos los elementos en un único valor. En conjunto, abarcan las operaciones de transformación, selección y agregación.

Cuando los iterables difieren en longitud, map() se detiene en el más corto. Los elementos adicionales en los iterables más largos se ignoran, por lo que no se genera ningún error y el resultado coincide con el iterable más corto.

No. Un objeto `map` es un iterador que se agota después de una sola pasada. Una vez que lo recorras o llames a `list()` sobre él, estará vacío. Conviértelo primero en una lista si necesitas reutilizarlo.

En el aprendizaje automático, la función map() aplica funciones de preprocesamiento a conjuntos de datos, como escalar números, tokenizar texto o transformar características antes del entrenamiento. Proporciona una forma limpia y funcional de ejecutar la misma operación en múltiples muestras.

Sí. GitHub Copilot autocompleta las llamadas a map() con la función e iterables correctos, y las herramientas de IA agenic pueden refactorizar bucles en expresiones map() y luego ejecutar tus pruebas para confirmar que el comportamiento no ha cambiado.

Resumir este post con: