Higher order functions
Clase 27 de 56 • 21 Días de Python
Contenido del curso
Clase 27 de 56 • 21 Días de Python
Contenido del curso
Las High Order Functions son funciones que cumplen al menos uno de los siguientes criterios:
Estas funciones son fundamentales para la programación funcional y nos permiten trabajar con funciones de manera modular y flexible.
En Python, algunas de las High Order Functions incorporadas más comunes son:
map(función, secuencia): Aplica la función a cada elemento de la secuencia y devuelve un iterador con los resultados.filter(función, secuencia): Filtra los elementos de la secuencia según la función dada y devuelve un iterador con los elementos que cumplan la condición.reduce(función, secuencia): Aplica la función a los elementos de la secuencia de manera acumulativa, reduciéndolos a un solo valor.sorted(secuencia, key=función): Ordena la secuencia según la función de clave dada y devuelve una nueva lista con los elementos ordenados.Estas funciones de orden superior nos permiten escribir código más limpio y expresivo al evitar la necesidad de bucles explícitos y operaciones repetitivas.
Además, podemos crear nuestras propias High Order Functions en Python. Esto se logra utilizando la capacidad de Python para tratar las funciones como objetos de primera clase. Podemos pasar funciones como argumentos a otras funciones, devolver funciones desde funciones y almacenar funciones en variables.
Aquí hay un ejemplo acerca del uso de las High Order Functions en Python:
def aplicar_operacion(func, a, b): return func(a, b) def suma(a, b): return a + b def resta(a, b): return a - b resultado = aplicar_operacion(suma, 5, 3) print(resultado) # Output: 8 resultado = aplicar_operacion(resta, 10, 7) print(resultado) # Output: 3
En este ejemplo, tenemos una función aplicar_operacion que toma una función func y dos argumentos a y b. La función aplicar_operacion llama a func pasándole a y b como argumentos y devuelve el resultado.
Luego, definimos las funciones suma y resta que realizan operaciones de suma y resta, respectivamente.
Finalmente, llamamos a aplicar_operacion pasando las funciones suma y resta junto con los argumentos necesarios. Dependiendo de la función que se pase, se realiza la operación correspondiente y se obtiene el resultado.
Todo esto y más lo puedes aprender en el Curso de Python: Comprehensions, Funciones y Manejo de Errores
Nicolas Alpargatero
Jhon Freddy Tavera Blandon
Eduardo Peña Ramos
Waldir Zapata Garcia
Waldir Zapata Garcia
Literal están hechas para tener un mejor rendimiento, tremendo:
Diferencia entre map() y list comprehension
Cuando usa la función map(), crea un nuevo iterable con la misma longitud que el iterable de entrada. Esto significa que la memoria para el nuevo iterable se asigna de una vez, antes de que tenga lugar cualquier procesamiento.
Por otro lado, cuando usa una list comprehension, la nueva lista se construye un elemento a la vez. Esto significa que a medida que crece la lista, es posible que deba cambiar su tamaño varias veces para acomodar nuevos elementos. Cada vez que se cambia el tamaño de la lista, se debe reasignar la memoria de la lista, lo que puede ser un proceso lento.
En resumen, map() puede ser más rápido que una list comprehension porque asigna previamente memoria para el resultado, mientras que una list comprehension puede necesitar reasignar memoria varias veces a medida que crece.
Nota : En Python 3, la función reduce()se encuentra en el módulo functools.
from functools import reduce def suma(x, y): return x + y numeros = [1, 2, 3, 4, 5] suma_total = reduce(suma, numeros) # Output: 15 print(suma_total)
Cierto, hay que importarla.
Higher Order Functions in Python
**++Decorators ++**are the most common use of higher-order functions in Python. It allows programmers to modify the behavior of function or class. Decorators allow us to wrap another function in order to extend the behavior of wrapped function, without permanently modifying it. In Decorators, functions are taken as the argument into another function and then called inside the wrapper function.