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.
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
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.
map(función, iterable)
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.
filter(función, iterable)
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.
reduce(función, iterable)
reduce
con una función que sume dos números.
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.