Python Lambdas

Python Lambdas

Introducción

Has trabajado con funciones y métodos, pero hay un tipo diferente de función, la función anónima. Las funciones anónimas son solo funciones sin nombres, y en Python, se manejan con el operador Lambda.

Las funciones anónimas le permiten usar el comportamiento de una función sin tener que crear una función. Esto es especialmente bueno cuando solo necesita usar una función una o dos veces. Puede sonar como un hecho inusual, pero ocurre con bastante frecuencia cuando una función o método toma una función como parámetro.

Lambdas

El operador Lambda tiene algunas piezas básicas. Consiste en lambda, una lista de parámetros y una operación. La operación se separa de los otros dos con un colon. Mira este ejemplo.

foo = lambda a = 2, b = 1: a / b print (foo) impresión (foo (16, 4)) 

Si está utilizando lambdas en una capacidad independiente, puede configurarlos igual a una variable. En esta forma, no son tan versátiles, pero aún pueden desempeñar un papel en la creación de funciones sobre la mosca.

Lambdas realmente encuentran su uso al pasar a otras funciones. Vea cómo funciona en el siguiente ejemplo.

def do_something (function, list_a, list_b): para x en list_a: para y en list_b: function (x, y) do_something (lambda x, y: print (x*y), [1, 3, 5], [2 , 4, 6]) 

Por supuesto, este ejemplo no es tan práctico. Sin embargo, ilustra el punto. Puede crear una lambda dentro de una llamada de función para pasarlo como argumento a otra función.

Mapa

El mapa() la función es interesante. Le permite iterar simultáneamente en una o más listas y pasarlas a una función. Es muy fácil para esa función ser una expresión de lambda.

Este ejemplo puede ayudar a aclarar.

Imprimir (Lista (mapa (Lambda X, Y: X * Y, [1, 2, 3, 4, 5], [2, 4, 6, 8, 10]))) 

Eso parece un desastre, por lo que es mejor desglosarlo. La parte principal comienza con mapa. Se necesitan al menos dos argumentos, una función y una lista. Sin embargo, puede tomar múltiples listas, y esta vez hay dos. También toma una expresión de lambda que acepta dos argumentos y los multiplica.

La función del mapa se ejecuta a través de esas listas. Establece cada elemento en la primera lista en el primer argumento de la función y cada elemento en la segunda lista en el argumento de la segunda función. Ejecuta la función cada vez. El mapa() la función devuelve un objeto de mapa.

Ese objeto de mapa debe convertirse en una forma más utilizable. El lista() la función convierte el objeto en una lista regular. Entonces, imprimir() Imprime esa lista.

Echa un vistazo a otro.

Imprimir (Lista (MAP (Lambda X: X*2, [1, 2, 3, 4, 5]))))) 

El ejemplo más simple podría ser más fácil de seguir.

Filtrar

El filtrar() la función es otra función similar a mapa(). Toma una función y una lista como argumentos e itera en la lista, ejecutando los elementos a través de la función.

En lugar de simplemente ejecutar una función, filtrar() Utiliza la función como condición de prueba para los elementos en la lista. El objeto que crea contiene todos los elementos donde la condición evaluó "verdadero."

Imprimir (Lista (Filtro (Lambda X: X> 5, [2, 4, 6, 8])))) 

La lista resultante solo contenía 6 y 8 porque esas fueron las dos condiciones en las que la condición dada en la función evaluó "verdadero." filtrar(), Cuando se usa junto con una expresión de lambda, es una forma eficiente de clasificar y probar listas contra una condición.

Pensamientos de cierre

Los lambdas no son el tema más popular en Python. A muchos desarrolladores ni siquiera les gustan. Incluso el creador de Python no es fanático.

Si te gustan, genial. Si no, no te preocupes. Hay alternativas que se discutirán en guías posteriores.

Por ahora, es importante estar al tanto de Lambdas y cómo funcionan. Los encontrará de vez en cuando, y pueden ser la solución más fácil.

Ejercicios

  1. Cree una expresión de lambda que multiplique dos números y lo configure igual a una variable.
  2. Use esa variable para llamar a la lambda y pasarlo dos números.
  3. Escriba una función que tome una función como parámetro. Llame a esa función y pase una lambda.
  4. Utilizar el mapa() funcionar junto con una lambda para agregar cada elemento en dos listas.
  5. Utilizar el filtrar() funcionar junto con una lambda para probar si cada elemento en una lista es impar.

Tutoriales de Linux relacionados:

  • Cosas para instalar en Ubuntu 20.04
  • Una introducción a la automatización, herramientas y técnicas de Linux
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
  • Mint 20: Mejor que Ubuntu y Microsoft Windows?
  • Sistema colgado de Linux? Cómo escapar a la línea de comando y ..
  • Ubuntu 20.04 Guía
  • Cosas para instalar en Ubuntu 22.04
  • Mastering Bash Script Loops
  • Cosas que hacer después de instalar Ubuntu 22.04 Jellyfish de Jammy ..
  • Cómo usar ADB Android Debug Bridge para administrar su Android ..