Temas Avanzados

Map, Filter y Reduce

Las funciones map, filter y reduce son herramientas poderosas en Python para manipular iterables como listas y tuplas de manera funcional. Estas funciones permiten aplicar una operación a cada elemento de una colección, filtrar elementos según una condición y reducir una colección a un solo valor, respectivamente.

Código de Ejemplo

  1. Uso de map:

				
					# Definir una función simple
def cuadrado(x):
    return x * x

# Lista de números
numeros = [1, 2, 3, 4, 5]

# Aplicar la función a cada elemento de la lista usando map
cuadrados = map(cuadrado, numeros)

# Convertir el resultado a una lista y mostrarlo
print("Cuadrados:", list(cuadrados))  # Output: [1, 4, 9, 16, 25]

				
			

2. Uso de filter:

				
					# Definir una función simple para verificar si un número es par
def es_par(x):
    return x % 2 == 0

# Lista de números
numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# Filtrar los números pares usando filter
numeros_pares = filter(es_par, numeros)

# Convertir el resultado a una lista y mostrarlo
print("Números pares:", list(numeros_pares))  # Output: [2, 4, 6, 8, 10]

				
			

Uso de reduce:

				
					from functools import reduce

# Definir una función simple para sumar dos números
def suma(x, y):
    return x + y

# Lista de números
numeros = [1, 2, 3, 4, 5]

# Reducir la lista a la suma de sus elementos usando reduce
suma_total = reduce(suma, numeros)

# Mostrar el resultado
print("Suma total:", suma_total)  # Output: 15

				
			

Explicación

map

La función map aplica una función a cada elemento de un iterable (como una lista) y devuelve un nuevo iterable con los resultados. Es útil cuando necesitas transformar todos los elementos de una colección de la misma manera.

  • Uso: map(función, iterable)
  • Ejemplo: Si tienes una lista de números y quieres calcular el cuadrado de cada número, puedes usar map con una función que calcule el cuadrado.

filter

La función filter aplica una función de filtro a cada elemento de un iterable y devuelve un nuevo iterable con solo los elementos que hacen que la función de filtro devuelva True. Es útil cuando necesitas seleccionar elementos de una colección que cumplen con una condición.

  • Uso: filter(función, iterable)
  • Ejemplo: Si tienes una lista de números y quieres seleccionar solo los números pares, puedes usar filter con una función que compruebe si un número es par.
 
 

reduce

La función reduce aplica una función de acumulación a los elementos de un iterable, reduciéndolo a un solo valor. Se encuentra en el módulo functools y es útil para realizar operaciones como la suma o multiplicación de todos los elementos de una colección.

  • Uso: reduce(función, iterable)
  • Ejemplo: Si tienes una lista de números y quieres calcular la suma de todos ellos, puedes usar reduce con una función que sume dos números.
 
 

Resumen

  • map: Aplica una función a cada elemento de un iterable y devuelve un nuevo iterable con los resultados.
  • filter: Filtra los elementos de un iterable, devolviendo solo los elementos que cumplen con una condición.
  • reduce: Aplica una función de acumulación a los elementos de un iterable, reduciéndolo a un solo valor.