Curso Intermedio de Python N05. Funciones lambdas
Cordiales Saludos
Funciones lambdas.
También llamadas funciones anónimas, son funciones simplificadas con una sola sentencia. Lo referente al concepto de anónimas es porque al ser simplificadas no poseen un nombre de función, como hacemos las "funciones normales", sino que al usar la palabra reservada: "lambda" su comportamiento como función se limita a gestionar algún parámetro y arrojar un resultado.
Su utilidad se potencia cuando queremos hacer una función sencilla o pequeña dentro de una linea de código.
Se puede apreciar mejor la construcción de las funciones lambdas comparándolas con las estructuras generales de funciones que ya hemos visto.
Como siempre comienzo mis cursos con hacer las cosas lo más simplificado posible, se logra un mejor entendimiento y que mejor manera que practicar esta función sumando 3 números.
En la siguiente captura de pantalla, vemos una función suma, que nos es muy familiar.
A continuación la transformaremos a una función lambda. Como podemos observar tenemos una variable, sumar que recibirá el resultado de la función lambda.
Colocamos la palabra reservada lambda seguido de los parámetros que recibirá la función, y luego de los dos puntos: el cuerpo de la función es decir, la sentencia que le da la solución o ejecuta el proceso que queremos realizar.
Debemos tomar en cuenta lo siguiente:
>>> sumar = lambda a,b,c: a + b + c
>>> type(sumar)
<class 'function'>
>>>
>>> print(sumar)
<function <lambda> at 0x7fc3c9f61630>
>>>
A continuación realizaremos tres ejercicios.
Ejercicio N1
Código
>>> s = lambda a = 10, b = 20, c = 30: a + b + c
>>> print(s())
60
>>>
>>> print(s(100))
150
>>>
>>> print(s(100,200))
330
>>>
>>>
Ejercicio N2
Código
>>> import random
>>> n = lambda a = 10, b = 20: random.randint(a,b)
>>> print(n())
20
>>> print(n())
10
>>> print(n())
19
>>> print(n(15))
20
>>> print(n(15))
15
>>> print(n(15))
16
>>> print(n(1,3))
1
>>> print(n(1,3))
1
>>> print(n(1,3))
3
>>> print(n(1,3))
2
>>>
Ejercicio N3
Código
>>> a = 100
>>> funcion = lambda: a
>>> print(funcion())
100
>>>
>>> b = 2000
>>> funcion2 = lambda: b * 2
>>> print(funcion2())
4000
>>>
>>>
No es necesario que cada vez que tengamos en cuenta el uso de las funciones lambdas, hacer la función de forma normal y luego transformarla. Lo que debemos tener claro es si es una instrucción sencilla de una sola línea de código, seguro nos será fácil su uso.
Corresponde ahora practicar mucho... Hasta la próxima publicación.
Profundizando en python
Lo realizado en la captura de pantalla anterior con un poco de conocimiento del manejo de la terminal de linux, lo podemos realizar de esta forma:
rafael@HP:~$ echo -e 'import keyword\nprint(keyword.kwlist)' > key.py;cat key.py; python3 key.py
rafael@HP:~$ echo -e 'import keyword\nprint(keyword.kwlist)' > key.py;cat key.py; python3 key.py
import keyword
print(keyword.kwlist)
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
rafael@HP:~$
Has sido curado por @visualblock / You've been curated by @visualblock
Bienvenidas delegaciones / Delegations welcome
Trail de Curación / Curation Trail
Vota por nuestro Testigo aliado - @hispapro / Vote for our allied Witness - @hispapro
Más información sobre el testigo aquí / More information about the witness here
Excelente este tipo de contenido, yo le apoyo ya le mande unos SBI para que sigue motivado. Se puede ver en https://peakd.com/@rafaelaquino/wallet/others
Saludos, apreciado amigo...Gracias por pasar por mi publicación y agradecido por tu apoyo. Fuerte abrazo!
Thanks for your contribution to the STEMsocial community. Feel free to join us on discord to get to know the rest of us!
Please consider delegating to the @stemsocial account (85% of the curation rewards are returned).
You may also include @stemsocial as a beneficiary of the rewards of this post to get a stronger support.