Categorías
codificación

Python def y lambda sintaxis y comparación de diferencias

Echemos un vistazo a dos palabras clave que tienen funciones similares. ¿No habrías hecho dos inútilmente?

definitivamente descripción

Déjame primero darte un ejemplo.

def add(x, y):
    return x + y
print(add(3,5))

Aquí está el resultado:

8

Las funciones se escriben con la palabra clave def.

add es el nombre de la función, y los argumentos a pasar se definen como x e y.

Tiene una función que devuelve el resultado de sumar dos valores.

Si pasa 3 y 5 como argumentos a la función de suma creada de esta manera, puede ver que el resultado es 8.

descripción lambda

Vamos a crear la misma función que la anterior.

add = lambda x,y: x+y
print(add(2,3))

Aquí está el resultado:

5

Utiliza la palabra clave lambda para recibir x e y como argumentos y devuelve el resultado de sumar los dos valores.

Lambdas crea funciones sin nombre de forma predeterminada.

Y puedes escribir de manera más concisa en una línea.

Además, no utilice la palabra clave de retorno.

También se puede utilizar de la misma forma que una función asignándola a una variable.

Cómo usarlo

Veamos otro ejemplo de uso para ayudarlo a comprender.

temp = [1,2,3,4,5]
result = list(filter(lambda x:x>2, temp))
print(result)

Aquí está el resultado:

[3,4,5]

Este es un ejemplo del uso del método de filtro para seleccionar solo valores mayores que 2 de una matriz con elementos del 1 al 5.

lambda recibe un valor, determina si es mayor que 2 y devuelve valores booleanos verdaderos o falsos.

El método de filtro asigna una lambda al primer argumento y una matriz al segundo argumento.

Recorre la matriz y produce un resultado manteniendo el valor si es mayor que 2 y excluyéndolo en caso contrario.

El resultado obtenido por filter se crea en forma de matriz con el método list y se almacena en la variable result.

Vamos a crear exactamente la misma función con una función.

temp = [1,2,3,4,5]
def comp(x):
    return x > 2
result = list(filter(comp, temp))
print(result)

Aquí está el resultado:

[3,4,5]

No importa cómo lo implementes, pero en este ejemplo, la lambda es un poco más concisa, ¿verdad?

De hecho, si toma una foto del tipo, las implementaciones def y lambda resultan iguales a las funciones.

Por lo tanto, puede considerarlo como un concepto de que una lambda está incluida en una función.

En conclusión, sería mejor usar la palabra clave def para crear una función que deba reutilizarse y usar lambda cuando desee crear una función simple de una sola vez.

Hay 2 respuestas en esta publicación.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

es_ESEspañol