1. Función map()
Aplica una operación específica a cada elemento de uno o más iterables, devolviendo un iterador con los resultados transformados.
map(operación, iterable, ...)- operación: una función que define la transformación a aplicar.
iterable: uno o más objetos iterables, como listas o tuplas.- Retorna un iterador que produce los elementos transformados.
Ejemplo 1: Incrementar valores en una lista
# Transformar cada sumando sumando 10
valores = [5, 10, 15, 20]
transformados = map(lambda elemento: elemento + 10, valores)
print(list(transformados)) # Salida: [15, 20, 25, 30]
Ejemplo 2: Combinar dos listas mediante multiplicación
# Multiplicar elementos correspondientes de dos secuencias
secuencia_a = [3, 6, 9]
secuencia_b = [2, 4, 6]
resultado = map(lambda x, y: x * y, secuencia_a, secuencia_b)
print(list(resultado)) # Salida: [6, 24, 54]
2. Función reduce()
Realiza una operación acumulativa sobre los elementos de un itearble, reduciendo la secuencia a un solo valor. Pertenece al módulo functools.
from functools import reduce
reduce(operación, iterable, semilla=None)- operación: función que combina dos argumentos y devuelve un resultado intermedio.
iterable: colección de elementos a procesar.semilla: valor inicial opcional para la acumulación.- Retorna el valor final acumulado.
El proceso implica aplicar la función repetidamente, usando cada resultado junto con el siguiente elemento del iterable.
Ejemplo 1: Sumar todos los elementos de una lista
from functools import reduce
# Acumular la suma total
numeros_lista = [1, 2, 3, 4]
suma_total = reduce(lambda a, b: a + b, numeros_lista)
print(suma_total) # Salida: 10
Ejemplo 2: Calcular producto con valor inicial
from functools import reduce
# Producto acumulado con semilla 1
datos_numericos = [2, 3, 4]
producto_acumulado = reduce(lambda x, y: x * y, datos_numericos, 1)
print(producto_acumulado) # Salida: 24
3. Función filter()
Selecciona elementos de un iterable que cumplen una condición booleana, devolviendo un iterador con los elementos filtrados.
filter(condición, iterable)- condición: función que devuelve True o False para cada elemento.
iterable: fuente de datos a filtrar.- Retorna un iterador con los elementos que pasan la condición.
Ejemplo 1: Extraer números impares de una secuencia
# Filtrar elementos impares
conjunto_numeros = [1, 2, 3, 4, 5, 6]
seleccion_impares = filter(lambda numero: numero % 2 != 0, conjunto_numeros)
print(list(seleccion_impares)) # Salida: [1, 3, 5]
Ejemplo 2: Seleccionar palabras que comienzan con vocal
# Filtrar palabras por prefijo
lista_palabras = ["sol", "luna", "estrella", "aire", "cielo"]
palabras_vocal = filter(lambda palabra: palabra[0] in 'aeiou', lista_palabras)
print(list(palabras_vocal)) # Salida: ['estrella', 'aire']
4. Función sorted()
Ordena los elementos de un iterable y devuelve una nueva lista ordenada, sin modificar el original.
sorted(iterable, clave=None, descendente=False)- iterable: datos a ordenar.
clave: función que extrae la clave de ordenación de cada elemento.descendente: bandera booleana para ordenar de mayor a menor.- Retorna una lista con los elementos ordenados.
Ejemplo 1: Ordenar números en sentido inverso
# Ordenar de mayor a menor
valores_ordenar = [5, 2, 8, 1, 9]
orden_inverso = sorted(valores_ordenar, reverse=True)
print(orden_inverso) # Salida: [9, 8, 5, 2, 1]
Ejemplo 2: Ordenar palabras por longitud
# Usar clave personalizada para longitud
terminos = ["sol", "luna", "estrella", "cielo"]
orden_por_longitud = sorted(terminos, key=lambda texto: len(texto))
print(orden_por_longitud) # Salida: ['sol', 'cielo', 'luna', 'estrella']
Ejemplo 3: Ordenar diccionarios por un atributo
registros = [
{"nombre": "Ana", "edad": 25},
{"nombre": "Luis", "edad": 30},
{"nombre": "María", "edad": 28}
]
# Ordenar por edad ascendente
orden_edad = sorted(registros, key=lambda item: item["edad"])
print(orden_edad) # Salida: [{'nombre': 'Ana', 'edad': 25}, {'nombre': 'María', 'edad': 28}, {'nombre': 'Luis', 'edad': 30}]
Tabla Comparativa de Funcinoes
| Función | Uso Principal | Argumentos | Tipo de Retorno |
|---|---|---|---|
map() |
Transformar cada elemento | operación, iterable, ... |
Iterador |
filter() |
Seleccionar elementos condicionalmente | condición, iterable |
Iterador |
sorted() |
Generar una versión ordenada | iterable, clave, descendente |
Lista |
reduce() |
Reducir a un valor acumulado | operación, iterable, semilla |
Valor único |