Introducci贸n

1

El Zen de Python

Conjuntos

2

Sets

3

Modificando conjuntos

4

Operaciones con conjuntos

5

Playgrounds: Elimina elementos duplicados usando conjuntos

Comprehensions

6

List Comprehension

7

Dictionary Comprehension

8

Dictionary Comprehension: condition

9

Playgrounds: Crea una lista usando List Comprehension

10

Lists vs. Tuples vs. Sets

Funciones

11

Funciones

12

Funciones: return

13

Par谩metros por defecto y m煤ltiples returns

14

El scope

15

Refactor game

16

Playgrounds: Tienda de Tecnolog铆a

17

Funciones an贸nimas: lambda

18

Higher order function: una funci贸n dentro de otra funci贸n

19

Map

20

Map con diccionarios

21

Reto: map con inmutabilidad

22

Playgrounds: Multiplica todos los elementos por dos

23

Filter

24

Playgrounds: Retorna solo palabras de 4 letras y m谩s

25

Reduce

M贸dulos

26

M贸dulos

27

Mis propios m贸dulos

28

M贸dulos como scripts: __name__ y __main__

29

Paquetes

30

Playgrounds: Calcular la suma de todas las compras

Manipulaci贸n de archivos y errores

31

Iterables

32

Errores en Python

33

Manejo de excepciones

34

Playgrounds: Captura la excepci贸n: ZeroDivisionError

35

Leer un archivo de texto

36

Escribir en un archivo

37

Leer un CSV

38

Playgrounds: Lee un CSV para calcular el total de gastos

Gr谩ficas en Python

39

Creando una gr谩fica

40

Reto: graficando la poblaci贸n de un pa铆s

41

Reto: graficando la poblaci贸n mundial

Pr贸ximos pasos

42

隆Conoce otros proyectos de este curso!

43

Reconoce tu proceso y certif铆cate

44

Toma el Curso de PIP y Entornos Virtuales con Python

No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Funciones an贸nimas: lambda

17/44
Recursos

Aportes 90

Preguntas 12

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Funciones an贸nimas

Aqu铆 os dejo una forma sencilla de ver una lambda function:

Creo que la intenci贸n de Nicol谩s era imprimir la variable 鈥榬esult鈥 y no el n煤mero 11.

result = increment(10)
print(result)

驴Que es lambda?
Son conocidas como Funciones An贸nimas o lambdas, en donde no tienen un identificador o no tienen un nombre, se puede definir su estructura de la siguiente manera: lambda argumentos: expresi贸n, las funciones lambda pueden tener los argumentos que se requieran pero solo una linea de c贸digo o una expresi贸n.

Sintaxis

lambda arguments : expression

Queremos incrementar el valor de una serie seg煤n la cantidad que le hayamos dado para ello tenemos el siguiente ejemplo:

def increment(x):
  return x + 1

increment_v2 = lambda x : x + 1

result = increment_v2(20)
print(result)
_Producci贸n:_
21

La funci贸n lambda puede tomar cualquier cantidad de argumentos, pero solo puede tener una expresi贸n.

datos_completos = lambda name, last_name, age, countrie: f'Sus datos completos son {name.title()} {last_name.title()} tiene {age} a帽os y vive en {countrie.title()}'
text = datos_completos('camilo', 'mejia', 35, 'colombia')
print(text)
_Producci贸n:_
Sus datos completos son Camilo Mejia tiene 35 a帽os y vive en Colombia

Lectura de Apoyo

隆El curso est谩 muy bueno!.
y por fin entend铆 la funci贸n lambda. XD

si quieres llamar directamente a lamba seria asi:

(lambda x : x * 2)(3)

y daria 6

Una combinaci贸n de funciones lambda con recursividad para generar un valor de la serie Fibonacci:

fibonacci = lambda x: 0 if x == 0 else 1 if x < 3 else fibonacci(x - 1) + fibonacci(x - 2)
print(fibonacci(int(input('Enter a number: '))))

Por curiosidad trate de probar si pod铆a usar las lambdas en una list comprehension, y si, se pueden usar.
ac谩 les dejo el c贸digo.

sqr = lambda x: x ** 2
lst = [sqr(i) for i in range(1, 10)]
print(lst)

Por si acaso aun ocupan un poco mas de informacion sobre las funciones lambdas , les dejo este link para apoyar lo visto.
https://www.freecodecamp.org/news/python-lambda-function-explained/

Aqu铆 algunos ejemplos extra 鈥!

# Lamdba - Basico
lambda_func = lambda x : x**2
print(lambda_func(3))
print(lambda_func(4))

# Lamdba - Intermedio
lambda_func = lambda x: True if x**2 >= 10 else False
print(lambda_func(3))
print(lambda_func(4))

# Lambda - Avanzado
# n = 1 M.Aritmetica / 2 M.Geometrica / 3 M.Armonica"
# No se puede definir el "elif" dentro de una funcion lamdba
lambda_func = lambda  x,y,z,n : (x+y+z)/3 if n == 1 else ( (x*y*z)**(1/3) if n == 2 else (3/((1/x)+(1/y)+(1/z)))) 
print('Media Aritm茅tica => ' + str(lambda_func(4,5,6,1)))
print('Media Geom茅trica => ' + str(lambda_func(4,5,6,2)))
print('Media Arm贸nica => ' + str(lambda_func(4,5,6,3)))

En Python, una funci贸n lambda es una forma abreviada de crear funciones an贸nimas, es decir, funciones que no tienen un nombre. Las funciones lambda se utilizan a menudo en conjunci贸n con las funciones integradas de Python como 鈥渕ap鈥, 鈥渇ilter鈥 y 鈥渞educe鈥, as铆 como en combinaci贸n con funciones de orden superior como 鈥渟orted鈥 y 鈥渕in鈥.

La sintaxis de una funci贸n lambda es la siguiente:


lambda argumentos: expresi贸n

donde 鈥渁rgumentos鈥 es una lista de argumentos y 鈥渆xpresi贸n鈥 es la expresi贸n a evaluar.

Por ejemplo, podr铆amos usar una funci贸n lambda para elevar un n煤mero a una potencia espec铆fica:


power = lambda x, y: x ** y
print(power(2, 3)) # 8

Una de las ventajas de las funciones lambda es que son muy concisas, lo que las hace ideales para tareas simples y f谩cilmente legibles. Sin embargo, para tareas m谩s complejas, se recomienda utilizar funciones normales, ya que son m谩s f谩ciles de depurar y mantener.

En resumen, las funciones lambda en Python proporcionan una forma conveniente y concisa de crear funciones an贸nimas para tareas simples y puntuales, y son especialmente 煤tiles al trabajar con funciones de orden superior.

Una peque帽a forma de hacer lambda en python.

Tambi茅n se pueden usar inputs en la funci贸n lambda, por ejemplo:

full_name = lambda a, b : f'Su nombre es {a.title()} {b.title()}'
text = full_name(input('Nombre: '), input('Apellido: '))
print(text)

隆Saludos!

En el minuto 6:38 la idea es poner como par谩metro la variable result, no el valor 11. Igual es resultado es 11.

Creo que por la emoci贸n se creo este laspsus. 馃ぃ

def valumen(length, width, x):  #Pasar de esto
    return length * width * x

volumen = lambda lengh,width,x: lengh*width*x #A esto

print(volumen(10,10,10))

"En mi opinion, una funcion lambda es util cuando tenemos varios parametros que a su vez, devuelven un solo resultado.

cuando tengas varias cosas que comprobar, considera usar una funcion def.

me dio mucha risa que el imprimio el 11 no el result jajajaj xD

Aqui una solucion al ultimo ejercicio de la clase

full_name = lambda name, last_name : f'full name is: {name.title()} {last_name.title()}'

text = full_name(input('Nombre(s) => '), input('Apellido => '))
print(text)

1.Sin retorno y solo impresion, asignandole los valores directamente
2.Con retorno e impresion, asignandole los valores directamente

sumar_v1=(lambda x,y:print(x+y))(3,4)
sumar_v2=(lambda x,y:x+y)(3,4)
print(sumar_v2)
def increment(x):
    return x + 1
result = increment(10)
print(result)

#Funcion lambda debemos definir parametros de entrada y de salida

fun=lambda x : x + 2
print(fun(10))

full_name = lambda name,last_name: f'el nombre es {name} {last_name} '
print(full_name('Didio','Perdomo'))

Que profesor tan malooo!
poco carisma y pesima forma de explicar.

Funciones an贸nimas: lambda


La funci贸n lambda en Python es una forma concisa de definir funciones an贸nimas (sin nombre) y peque帽as en una sola l铆nea de c贸digo. Estas funciones son 煤tiles cuando necesitas una funci贸n simple para realizar una tarea espec铆fica y no deseas crear una funci贸n con un nombre completo usando la sintaxis def.

La sintaxis b谩sica de una funci贸n lambda es la siguiente:

lambda argumentos: expresion

Donde:

  • argumentos son los par谩metros de entrada de la funci贸n.
  • expresion es la operaci贸n que la funci贸n realizar谩 y cuyo resultado se devolver谩.

Aqu铆 hay algunos ejemplos para ilustrar c贸mo se utiliza la funci贸n lambda:

  1. Funci贸n lambda simple:
suma = lambda a, b: a + b 
resultado = suma(5, 3)  # El resultado ser谩 8
  1. Ordenamiento de una lista de tuplas utilizando una funci贸n lambda:
personas = [('Juan', 25), ('Mar铆a', 30), ('Carlos', 28)] 
personas.sort(key=lambda x: x[1]) # Ordenar谩 la lista de personas por edad
  1. Uso de funci贸n lambda en map():
numeros = [1, 2, 3, 4, 5] 
cuadrados = list(map(lambda x: x ** 2, numeros)) # Resultado: [1, 4, 9, 16, 25]
  1. Filtrado de elementos utilizando funci贸n lambda en filter():
numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 
pares = list(filter(lambda x: x % 2 == 0, numeros)) # Resultado: [2, 4, 6, 8, 10]

Las funciones lambda son particularmente 煤tiles cuando necesitas una funci贸n simple para un uso espec铆fico, como en combinaci贸n con funciones de orden superior como map(), filter() y sorted(). Sin embargo, si la funci贸n que necesitas es m谩s compleja o ser谩 reutilizada en m煤ltiples lugares, es preferible utilizar una funci贸n definida con def para tener un c贸digo m谩s legible y mantenible.

Funciones Lambda
Las funciones Lambda son funciones an贸nimas que solo pueden contener una expresi贸n.

驴Cuando y por qu茅 usarlas
Puedes ahorrar escribir varias lineas de c贸digo si solo necesitas hacer una expresi贸n **corta ** con una funci贸n. En ese caso puedes usar Lambda.

Ejemplo
De una lista, si quiere saber cu谩les son los n煤meros positivos.

mi_lista = [18, -3, 5, 0, -1, 12]
lista_nueva = list(filter(lambda x: x > 0, mi_lista))
print(lista_nueva) # [18, 5, 12]

Otro ejemplo
Funci贸n que duplique el valor de n煤meros en una lista.

mi_lista = [1, 2, 3, 4, 5, 6]
lista_nueva = list(map(lambda x: x * 2, mi_lista))
print(lista_nueva)  # [2, 4, 6, 8, 10, 12]
mi_lista = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

filtrado = filter(lambda x: x % 2 != 0, mi_lista)

list(filtrado)
# [1, 3, 5, 7, 9]

驴Qu茅 son las funciones lambda o an贸nimas?

  • Las funciones lambda o an贸nimas, son un tipo de sintaxis especial para crear funciones cortas con una sintaxis reducida, las cuales vamos a necesitar en
  • Tkinter y en muchas otras cosas.

驴Por qu茅 se llaman an贸nimas estas funciones?
Esto es debido a que no hace falta darles un nombre.

Diferencia entre funci贸n normal y lambda de Python

  • Aparte de la sintaxis reducida, la diferencia fundamental entre una funci贸n normal y una lambda, es que las funciones lambda no pueden tener m谩s de una expresi贸n. S铆 que pueden tener tantos argumentos como queramos.

Ejemplo de uso de funci贸n lambda

  • Aqu铆 tienes una funci贸n de multiplicaci贸n normal y corriente. Muy sencilla.
def multiplicacion(numero1,numero2):
	return numero1 * numero2
lambda numero1, numero2 : numero1 * numero2

FUNCIONES ANONIMAS LAMBDA:

-Una funci贸n lambda es una peque帽a funci贸n an贸nima.
-Una funci贸n lambda puede tomar cualquier cantidad de argumentos, pero solo puede tener una
expresi贸n.

-Sintaxis:
    var_name = lambda arguments : expression

-Las funciones Lambda pueden tomar cualquier n煤mero de argumentos

-驴Por qu茅 utilizar las funciones de Lambda?
    El poder de lambda se muestra mejor cuando los usa como una funci贸n an贸nima dentro de
    otra funci贸n.

Las funciones lambdas tambi茅n son conocidas como funciones an贸nimas, pues carecen de un nombre.
.
En Python una funci贸n se define con la palabra reservada def seguida del nombre de la funci贸n, en cambio una funci贸n an贸nima se crea utilizando la palabra reservada lambda seguida de los argumentos de dicha funci贸n.
.

Caracter铆sticas de una funci贸n lambda

  • Se pueden definir con n n煤mero de par谩metros pero solo pueden evaluar y retornar una sola expresi贸n.
  • Se puede utilizar (mandar llamar) en cualquier parte como una funci贸n normal.
  • Suelen utilizarse como argumentos de otras funciones.

.

Regresar el cuadrado de una n煤mero:
Funci贸n normal

def square(num):
	sqr = num ** 2
	return sqr

print(square(3))
# 9

Funci贸n lambda

square = lambda x : x ** 2
print(square(3))
# 9
por que me sale este error en la herramienta?? `` Do not assign a `lambda` expression, use a `def` ``

La funci贸n lambda en Python se utiliza com煤nmente en situaciones donde se requieren funciones peque帽as y temporales. Algunos casos t铆picos incluyen:

  1. Funciones de Orden Superior: Las funciones lambda son convenientes cuando necesitas pasar funciones como argumentos a otras funciones, como map, filter, y sorted. Por ejemplo, para aplicar una operaci贸n simple a cada elemento de una lista, puedes usar una funci贸n lambda con map.

    # Utilizando lambda con map
    numeros = [1, 2, 3, 4, 5]
    cuadrados = list(map(lambda x: x**2, numeros))
    print(cuadrados)  # Salida: [1, 4, 9, 16, 25]
    
  2. Funciones An贸nimas en Expresiones: Cuando solo necesitas una funci贸n para una expresi贸n simple y no quieres definir una funci贸n completa con def. Esto puede hacer que el c贸digo sea m谩s conciso y legible en ciertos contextos.

    # Utilizando lambda en una expresi贸n
    suma = lambda x, y: x + y
    resultado = suma(3, 4)
    print(resultado)  # Salida: 7
    
  3. Callbacks R谩pidos: En situaciones en las que necesitas pasar una funci贸n como argumento a otra funci贸n y no planeas reutilizar la funci贸n definida.

    # Utilizando lambda como callback
    def operacion_binaria(a, b, operador):
        return operador(a, b)
    
    resultado = operacion_binaria(5, 3, lambda x, y: x * y)
    print(resultado)  # Salida: 15
    

Es importante destacar que las funciones def son m谩s vers谩tiles y pueden contener m煤ltiples expresiones y declaraciones, mientras que las funciones lambda est谩n limitadas a una sola expresi贸n. Adem谩s, las funciones definidas con def pueden tener un nombre, lo que las hace m谩s 煤tiles para casos donde se necesita reutilizaci贸n o claridad en el c贸digo. En general, la elecci贸n entre def y lambda depender谩 de la complejidad del c贸digo y de la necesidad de reutilizaci贸n.

Me encanto la forma de usar lambda en nuestra linea de codigo. Aprendi mucho con respecto a su uso. No imagine que fuera posible simplificar varias lineas en algo tan simple.

Hello :) mis aportes: \#lambda: Es una funcion gran versatilidad y de manejar sintaxis para las funciones def increment(x): return x + 1 result = print(increment(10)) \#lamda: \#parametros de entrada : parametros de salida (return) increment\_V2 = lambda x: x + 1 result = increment\_V2(20) print(result) \#ejercicio 2: \#title: Para poner la 1era letra en mayus full\_name = lambda name, last\_name: f'Full name is :{name.title()} {last\_name.title()}' text = full\_name('diana', 'cubides marin') print(text)

Yo digo que en la lambda en la entrada esta tambi茅n el par谩metro y en la salida esta el argumento.

def incrementar(x):
return x + 1

incrementar2 = lambda x : x+1

resultado = incrementar(10)
print (resultado)

resultado = incrementar2(20)
print(resultado)

full_name = lambda name , last_name: f"su nombre es {name.title()} {last_name.title()}"
text = full_name (鈥渃amilo鈥 , 鈥渟alazar鈥)
print(text)

En Python, una funci贸n lambda es una funci贸n an贸nima que se puede definir en una sola l铆nea de c贸digo. Estas funciones son 煤tiles cuando se necesita una funci贸n temporal para una operaci贸n simple. La sintaxis de una funci贸n lambda es la siguiente: lambda argumentos: expresi贸n.

Por ejemplo, si quisieras crear una funci贸n que sume dos n煤meros, podr铆as hacerlo de la siguiente manera:

suma = lambda x, y: x + y

De esta manera, la variable suma se convierte en una funci贸n que toma dos argumentos y devuelve su suma.

Una funci贸n lambda en Python es una forma de crear funciones an贸nimas y de una sola expresi贸n sin necesidad de definirlas formalmente con la declaraci贸n def. Las funciones lambda son 煤tiles cuando necesitas una funci贸n simple y peque帽a para realizar una tarea espec铆fica, como una operaci贸n matem谩tica, una transformaci贸n de datos o una funci贸n de ordenamiento.

A veces suelo tener preguntas, pero como soy nuevo viendo el curso no hay quien responda, entonces me gustar铆a que los profes de Platzi este m谩s atentos.

Una lambda es una funci贸n an贸nima en programaci贸n. En lugar de definir una funci贸n con un nombre, una lambda se define de forma concisa utilizando la palabra clave lambda .

Las funciones lambda, tambi茅n conocidas como funciones an贸nimas, son funciones peque帽as y de una sola expresi贸n en Python. A diferencia de las funciones regulares definidas con la palabra clave def , las funciones lambda se definen utilizando la palabra clave lambda.

La sintaxis b谩sica de una funci贸n lambda es la siguiente:

lambda argumentos: expresi贸n

La funci贸n lambda toma una serie de argumentos separados por comas, seguidos por dos puntos y una expresi贸n. La expresi贸n es evaluada y su resultado es devuelto autom谩ticamente como resultado de la funci贸n lambda.

Una caracter铆stica clave de las funciones lambda es que no requieren un nombre, de ah铆 su nombre de 鈥渇unciones an贸nimas鈥. Por lo tanto, generalmente se utilizan en situaciones donde se requiere una funci贸n simple y no es necesario asignarle un nombre.

Las funciones lambda son 煤tiles cuando se necesita una funci贸n temporal o se desea pasar una funci贸n como argumento a otra funci贸n, como en el caso de las funciones map(), filter(), sort() y otras funciones de orden superior en Python.

Aqu铆 hay un ejemplo para ilustrar el uso de una funci贸n lambda:

# Definir una funci贸n lambda que suma dos n煤meros
sumar = lambda x, y: x + y

# Utilizar la funci贸n lambda
resultado = sumar(3, 5)
print(resultado)  # Imprime: 8

En este ejemplo, la funci贸n lambda sumar toma dos argumentos x e y y devuelve su suma. La funci贸n lambda se asigna a la variable sumar y luego se utiliza como una funci贸n normal para sumar dos n煤meros.

Llegue al punto de no entender nada.

Tiene una forma m谩s parecida a las funciones vistas en matem谩ticas.

Excelente!

Me parece muy 煤til la funci贸n lambda. Hice una operaci贸n utilizando la funci贸n lambda con dos variables x, y, para la f贸rmula: x^2 + 2xy + y^2

operacion = lambda x, y : x ** 2 + 2 * x * y + y ** 2
result = operacion(2, 4)
print(result)
full_name= lambda name,last_name :f'Full name is {name.title()} {last_name.title()}'
text=full_name('david','gonzalez')
print(text)

Este c贸digo utiliza una funci贸n lambda para crear una funci贸n an贸nima llamada full_name. La funci贸n lambda toma dos argumentos, name (nombre) y last_name (apellido), y devuelve una cadena formateada que representa el nombre completo.

Aqu铆 est谩 la explicaci贸n paso a paso:

La l铆nea full_name = lambda name, last_name: f鈥橣ull name is {name.title()} {last_name.title()}鈥 define la funci贸n lambda full_name. Toma dos argumentos, name y last_name, y utiliza una expresi贸n para crear una cadena formateada que contiene el nombre completo. El m茅todo .title() se utiliza para asegurarse de que la primera letra de cada palabra est茅 en may煤scula.

La siguiente l铆nea, text = full_name(鈥榙avid鈥, 鈥榞onzalez鈥), invoca la funci贸n full_name pasando los valores 鈥榙avid鈥 y 鈥榞onzalez鈥 como argumentos. Esto asigna el resultado de la funci贸n lambda a la variable text.

Por 煤ltimo, la l铆nea print(text) imprime el contenido de la variable text, que en este caso ser铆a la cadena formateada con el nombre completo.

En resumen, este c贸digo utiliza una funci贸n lambda para definir una funci贸n an贸nima que toma dos argumentos y devuelve una cadena formateada con el nombre completo. Luego, se invoca esta funci贸n lambda con valores espec铆ficos y se imprime el resultado. En este caso, el resultado impreso ser铆a 鈥淔ull name is David Gonzalez鈥.

a colocarla mas en uso para ver mejor su potencial. Aunque uno de esos es usarla dentro de una function y cuando tengamos solo una expression, sera mas optima nuestras functions.

es como una funcion flecha en javascript

Aqu铆 mis notas y mis propios ejemplos:

# Sintaxis b谩sica
sumar = lambda value_one, value_two: value_one + value_two
print(sumar(1,2))# 3

# Lambdas como datos de retorno
def sum_three_values(val_one):
    return lambda val_two, val_three: val_one + val_two + val_three
print(sum_three_values(5)(1,2))# 8

# Lambdas como argumentos

def sum_three_values_2(val_one: int, f):
    return val_one + f(1,2)

print(sum_three_values_2(1, sumar))# 4

# Auto invocaci贸n
print(
    (lambda val_one, val_two: val_one + val_two)(1,2)# Auto invocaci贸n
)# 3

les comparto mi aporte usando inputs!!!

full_name = lambda name, last_name: f'tu nombre completo es: {name} {last_name}'
name = input('驴ingresa tu primer nombre?: ').title()
last_name = input('驴ingresa tu primer apellido?: ').title()

answer = full_name(name, last_name)
print(answer)

Buenas, pongo una modificaci贸n del mismo codigo pero con unos input para el name y last_name

full_name = lambda name, last_name: f'Full name: {name.title()} {last_name.title()}'

text1 = full_name(input(),input())
print(text1)```

Ya hay muchos 鈥渁portes鈥 copiados y pegados de chatgpt 馃槮

La verdad es que es muy evidente que las funciones lambda son como las list comprehension, es una forma de ahorrar l铆neas de c贸digo, adem谩s de que es muy facil leerlas. Por lo explicado en clase, el nombre de la funci贸n no es importante

Mal explicado!

La funci贸n lambda en Python es una funci贸n an贸nima que se puede crear de forma r谩pida y sencilla sin necesidad de definir una funci贸n con un nombre espec铆fico.

La sintaxis b谩sica de una funci贸n lambda en Python es la siguiente:

lambda arguments: expression

Donde 鈥渁rguments鈥 son los argumentos de la funci贸n separados por comas, y 鈥渆xpression鈥 es la expresi贸n que se eval煤a y devuelve como resultado de la funci贸n.

Por ejemplo, para crear una funci贸n lambda que calcule el cuadrado de un n煤mero, se puede escribir lo siguiente:

square = lambda x: x**2

En este caso, la funci贸n lambda toma un argumento 鈥渪鈥 y devuelve el resultado de elevar al cuadrado ese argumento. La funci贸n lambda 鈥渟quare鈥 se puede llamar de la misma forma que cualquier otra funci贸n definida en Python:

result = square(5)
print(result) # Output: 25

La funci贸n lambda es especialmente 煤til cuando se necesita crear una funci贸n r谩pida y sencilla para realizar alguna tarea espec铆fica, como filtrar una lista, ordenar elementos, etc.

Una funci贸n an贸nima es una funci贸n que no tiene un nombre definido en el c贸digo. En el caso de Python, una funci贸n an贸nima se crea con la palabra clave 鈥渓ambda鈥.

A diferencia de las funciones regulares que se definen con la palabra clave 鈥渄ef鈥, las funciones lambda no necesitan ser definidas con un nombre espec铆fico y no tienen un encabezado de funci贸n completo con un bloque de c贸digo definido.

En lugar de eso, las funciones lambda se pueden definir y utilizar de forma inmediata en una sola l铆nea de c贸digo. Por ejemplo, la siguiente expresi贸n define una funci贸n lambda que suma dos n煤meros:

lambda x, y: x + y

Esta funci贸n se puede utilizar de la siguiente manera:

sumar = lambda x, y: x + y
resultado = sumar(3, 5)
print(resultado) # Output: 8

En este ejemplo, se ha creado una funci贸n lambda y se ha asignado a la variable 鈥渟umar鈥, que se puede llamar como cualquier otra funci贸n. La funci贸n lambda toma dos argumentos y devuelve su suma como resultado.

Las funciones lambda son 煤tiles cuando se necesita una funci贸n simple y r谩pida que no requiere un nombre definido en el c贸digo.

馃槂

full_name = lambda name, last_name: f'You full name is: {name} {last_name}'
name = input('驴What is your name?: ').title()
last_name = input('驴What is your last name?: ').title()

answer = full_name(name, last_name)
print(answer)

funcion lambda en unas oraciones

  • Es una funci贸n lambda es una funci贸n an贸nima y peque帽a que se puede definir en una sola l铆nea de c贸digo.
  • Estas funciones son 煤tiles cuando necesitas una funci贸n temporal para realizar una tarea espec铆fica, ya que no necesitas crear una funci贸n con un nombre espec铆fico para hacerlo.
  • Las funciones lambda son 煤tiles para realizar operaciones simples y r谩pidas, como filtrar una lista, ordenar una lista o realizar una operaci贸n matem谩tica simple.
  • Esto me recuerda mucho a las arrow funcitions de JAVASCRIPT
const suma = (a,b) => a+b;
# calculadora con lambda xd

n1,n2=int(input()),int(input())
suma = lambda x, y : x + y
resultado = suma(n1,n2)
print(resultado)

Las funciones lambda en Python son funciones an贸nimas (sin nombre) que se definen en una sola l铆nea de c贸digo. Tambi茅n se conocen como funciones lambda o funciones an贸nimas porque no tienen un nombre definido, a diferencia de las funciones regulares que se definen con la palabra clave 鈥渄ef鈥 y se nombran con un identificador.

La sintaxis:

1. lambda argumentos: expresi贸n
2. variable = lambda  funcion: return

Donde 鈥渁rgumentos鈥 son los par谩metros de la funci贸n, y 鈥渆xpresi贸n鈥 es la operaci贸n que se realiza con los argumentos (return). La funci贸n lambda toma los argumentos y devuelve el resultado de la expresi贸n.

  • Las funciones lambda son 煤tiles cuando necesitamos definir una funci贸n de una sola l铆nea y no queremos escribir una funci贸n separada para ello. Tambi茅n son comunes en programaci贸n funcional y se utilizan a menudo con funciones de orden superior como map(), filter(), y reduce().

A lambda function is a small anonymous function.
A lambda function can take any number of arguments, but can only have one expression.

La principal diferencia vs las funciones que ya conoc铆amos, adem谩s de ser an贸nima, es que las lambda function solo retornan una expresi贸n.

# Funciones an贸nimas: lambda
# https://www.w3schools.com/python/python_lambda.asp

# Funcion
def increment(x):
  return x + 1

# Transformar en lambda function
increment_v2 = lambda x: x + 1

result = increment(10)
print(result)

result = increment_v2(20)
print(result)

full_name = lambda name, last_name: f'Full name is {name.title()} {last_name.title()}' # La funcion title hace que las palabras inicien en mayuscula

text = full_name("sara maria", "mejia sanchez")
print(text)

Las expresiones lambda en Python son una forma corta de declarar funciones peque帽as y an贸nimas (no es necesario proporcionar un nombre para las funciones lambda). Las funciones Lambda se comportan como funciones normales declaradas con la palabra clave def .

Una lambda function es una funci贸n delegada, que se puede definir cuando nuestra funci贸n solo contiene una l铆nea de c贸digo

Veamos鈥

#Function
def increment(x):
  return x + 1
result = increment(10)
print('Function => ',result)

#Lambda
increment_v2 = lambda x : x + 1
resultv2 = increment_v2(30)
print('Function type LAMBDA => ',resultv2)

#Lambda Dos
full_name = lambda name, last_name : f'Full Name is => {name.title()} {last_name.title()}'
text = full_name('lionel', 'messi')
print(text)
#Funciones anonimas:lambda

def increment(x):
    return x+1
print(increment(10))

#Transformando a lamda

increment_v2=lambda x:x+1
resultado=increment_v2(20)
print(resultado)

full_name=lambda nombre,apellido:f"Hola el nombre completo es {nombre.title()} {apellido.title()}"
nombre_mio=full_name("Alejandro","Moreno")
print(nombre_mio)

Mi aporte con funciones filter, map e input.

#son funciones que se realizan sin necesidad de definirlas (def) por lo que son denominadas tambien funciones anonimas 


list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 

pares = lambda x: x % 2 == 0  #creando una funcion que muestre los pares
z = list(filter(pares,list1))  #con filter podemos filtrar un iterable con una funcion. Se utiliza list para poder generar el formato.
print(z)

por2 = lambda x: x * 2  #funcion que multiplica por 2 cada elemento
x = list(map(por2, list1)) #map realiza el procedimiento iterable segun la funcion
print(x)


#con dos argumentos que evalua el texto ingresado por el usuario
full_name = lambda name, last_name: f"full name is {name.title()} {last_name.title()}"

name_user = str(input("Digite el nombre: "))
last_name_user = str(input("Digite el apellido: "))
texto = full_name(name_user, last_name_user)
print(texto)

Hola t煤

Tambi茅n puedes asignar unos par谩metros por defecto a los par谩metros con lambda function:

full_name = lambda name = "Alvaro", lastName = "Garz贸n" : f"Fullname: {name.title()} {lastName.title()}"
print(full_name())

hahahaha minimo error de Nico en el minuto 1:45, imprime en pantalla literalmente el numero 11 esperando que esa fuera la respuesta

LLegamos en donde se pone buena la cosa

Saludos

def increment (x):
    return x + 1

increment2 = lambda x : x + 2
result_2 = increment2(20)
print(result_2)

result = increment (10)
print(result)

full_name = lambda name, full : f' El nombre completo es {name.title()} {full.title()}'

text = full_name('oliver', 'huayamave')
print(text)



Tambi茅n se puede a帽adir typing usando esta sintaxis

from typing import Callable

# [[tipo de variable que recibe], tipo de variable que retorna]
increment:Callable[[int], int] = lambda x: x+1

la principal caracter铆stica de una funci贸n Lambda es recibir los valores y reducir la sintaxis

Creo que aqui seguro nicol谩s queria imprimir result.

te sere sincero 鈥 me estresa que cada que demuestra algo, deja todo el codigo arriba; aveces me pierdo y debo pausar el video para entender el hilo de lo que esta haciendo o que cambio鈥 la metodologia de ense帽anza siempre es bueno optimizarla鈥 me pregunto si penso que sentira el que no sabe codigo encontrar tanta letra en la parte de resultados

lo de print(11) fue a proposito?

#Como se hace antiguamente:
def increment(x):
  return x+1

result=increment(20)
print(result)

#Con lambda
increment2 = lambda x: x+1
result2=increment2(10)
print(result2)

#Lambda con nombre: 

nombre_completo = lambda nombre, apellido: "El nombre completo es {} {}".format(
    nombre.title(), apellido.title()
)
nombre=nombre_completo("jefferson", "cort茅s guti茅rrez")
print(nombre)

Las funciones lambda no pueden contener sentencias m煤ltiples y s贸lo pueden devolver una expresi贸n.

  • Correcto:
add = lambda x, y: x + y
  • Incorrecto
add = lambda x, y:
  print(x + y)

multiplicar = lambda x: x * 5

result = multiplicar(10)

print(result)

隆Buen铆simas las lambda functions!

def increment(x):
  return x + 1
  
increment_v2 = lambda x : x +1 

result = increment(10)
print(11)

result = increment_v2(20)
print(result)

full_name = lambda name,middle_name, last_name: f'full name is {name.title()} {middle_name.title()} {last_name.title()}'

text = full_name('Mario','Alexander','Perez casa')
print(text)

Una variable tambi茅n puede contener una funci贸n

No es buena idea pasarse los 80 caracteres en una sola linea, como aqu铆 lo hacen en la linea 13

Funciones Lambda

#--------Lambda-----------

#funcion incremento
def increment(x):
  return x + 1

result = increment(10)
print(result)
--> 11

# funcion incremento con lambda funtions
increment2 = lambda x: x + 1
result = increment2(20)
print(result)
--> 21

# funcion lambda que recibe dos valores
full_name = lambda name, last_name: f'el nombre completo es {name.title()} {last_name.title()}'

text = full_name('jose', 'alvarez')
print(text)
--> el nombre completo es Jose Alvarez

Excelente explicaci贸n馃

Algo de historia鈥

"Las expresiones lambda en Python y otros lenguajes de programaci贸n tienen sus ra铆ces en el c谩lculo lambda, un modelo de computaci贸n inventado por Alonzo Church.

Alonzo Church formaliz贸 el c谩lculo lambda, un lenguaje basado en la abstracci贸n pura, en la d茅cada de 1930. Las funciones lambda tambi茅n se conocen como abstracciones lambda, una referencia directa al modelo de abstracci贸n de la creaci贸n original de Alonzo Church.
El c谩lculo lambda puede codificar cualquier c谩lculo. Es Turing completo, pero contrariamente al concepto de m谩quina de Turing, es puro y no guarda ning煤n estado."

Fuente

def increment (*arg):
    return sum(arg)

num = lambda *arg: sum(arg*2)

print(f'lambda * 2 es {num(4,5,6,7)}')
print(increment(4,5,6,7))

Estan geniales las funciones lambda

Hermoso el c贸digo:

increment_v2 = lambda x : x + 1
result = increment_v2(20)
print(result)

full_name = lambda name, last_name: f'Full name is {name.title()} and Last name is {last_name.title()}'
text = full_name('antonio','demarco bonino')
print(text)
def increment(x):
  return x+1


result = increment(9)
print(result)


incrementv2 = lambda x : x+1
result = incrementv2(20)
print(result)

full_name = lambda name, last_name : name+' '+last_name
nombre=full_name('Camilo', 'Rico')
print(nombre)

full_name = lambda name, last_name : f'Full name is {name.title()} {last_name.upper()}'
nombre=full_name('Camilo', 'Rico')
print(nombre)

Usar lambda de esa forma es un anti-patron.
La clase esta buen铆sima para entender como funciona lambda pero la gu铆a de estilos de c贸digo en python o como mejor se le conoce PEP8 (algo as铆 como la biblia de python 馃槀) nos dice que no deber铆amos asignar a lambda (meter a lambda dentro de una variable), en su lugar deber铆amos la funci贸n normal de python.
.

Este podr铆a ser un ejemplo del uso de lambda en un entorno laboral

lista_de_tuplas = [(2, 'b'), (3, 'c'), (1, 'a'), (4, 'd')]

# Ordenar la lista por el primer elemento de la tupla
ordenado_por_primer_elemento = sorted(lista_de_tuplas, key=lambda tupla: tupla[0])

print(ordenado_por_primer_elemento) # [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]

En este ejemplo, la funci贸n lambda se utiliza como argumento de la funci贸n sorted() para especificar la clave de ordenamiento. La lambda toma cada tupla como entrada y devuelve el valor del primer elemento de la tupla, que se utiliza para ordenar la lista. El resultado final es la lista ordenado_por_primer_elemento que contiene las mismas tuplas, pero en orden ascendente por el valor del primer elemento de la tupla.
.
Aca pueden leer la regla especifica de la PEP 8 que nos dice que no deberiamos 鈥渕eter鈥 a lambda en una variable