Ejemplos funciones lambda

alumnos = ["Ana", "Iu", "Eva", "Victoria", "Ramon"]


def ultimaLetra(cadena):
    return cadena[-1]


ordenado = sorted(alumnos)
print(ordenado)
ordenado = sorted(alumnos, key=len)
print(ordenado)
ordenado = sorted(alumnos, key=ultimaLetra)
print(ordenado)
maslargo = max(alumnos, key=len)
print(maslargo)
maslargo = max(alumnos, key=ultimaLetra)
print(maslargo)

clase = [
    {"nombre": "Ana", "nota": 7},
    {"nombre": "Eva", "nota": 3},
    {"nombre": "Iu", "nota": 6},
    {"nombre": "Luis", "nota": 8},
    {"nombre": "Pep", "nota": 5},
]


def getNota(elemento):
    return elemento["nota"]


maslisto = max(clase, key=getNota)
print(maslisto)
peor = min(clase, key=getNota)
print(peor)

# Funciones lambda: Son funciones anónimas que se definen al momento
# lambda argumentos: expresion que se devuelve
maslisto = max(clase, key=lambda x: x["nota"])
print(maslisto)
# lo que hace el código de antes es recorrer la lista, obtener la nota de cada elemento
# ordenar por ese valor (es decir, por nota) y devolver el que tenga el valor máximo

suma_lambda = lambda x, y: x + y
print(suma_lambda(3, 4))
pornotas = sorted(clase, key=lambda alumno: alumno["nota"])
print(pornotas)

# Hay una función predefinida de python que es 'map'
# aplica una función a todos los elementos de un iterable
numeros = [1, 2, 3, 4, 5]


def cuadrado(x):
    return x ** 2


cuadrados = list(map(cuadrado, numeros))
print(cuadrados)

cuadrados2 = list(map(lambda x: x ** 2, numeros))
print(cuadrados2)

aprobados = list(filter(lambda x: x["nota"] >= 5, clase))
print(aprobados)


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


def esPar(numero):
    return numero % 2 == 0


pares = []
for nota in notas:
    if esPar(nota):
        pares.append(nota)
print(pares)

pares2 = [nota for nota in notas if esPar(nota)]
print(pares2)

pares3 = list(filter(esPar, notas))
print(pares3)

# Reescribir esto sin usar esPar

pares = []
for nota in notas:
    if nota % 2 == 0:
        pares.append(nota)
print(pares)

pares2 = [nota for nota in notas if nota % 2 == 0]
print(pares2)

pares3 = list(filter(lambda nota: nota % 2 == 0, notas))
print(pares3)

pedidos = [{"producto": "Libro", "precio": 20}, {"producto": "Lápiz", "precio": 2},
           {"producto": "Cuaderno", "precio": 5}, {"producto": "Tablet", "precio": 200},
           {"producto": "Funda", "precio": 15}]

# pedidos de 20 de precio o más
masde20 = []
for pedido in pedidos:
    if pedido["precio"] >= 20:
        masde20.append(pedido)

print(masde20)

masde20b = [pedido for pedido in pedidos if pedido["precio"] >= 20]
print(masde20b)

masde20c = list(filter(lambda pedido: pedido["precio"] >= 20, pedidos))
print(masde20c)

Publicado por

Juan Pablo Fuentes

Formador de programación y bases de datos