Funciones de Alto Orden Integradas en Python

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

Etiquetas: Python Map reduce Filter sorted

Publicado el 6-27 16:43