Cómo utilizar funciones Lambda en Python (funciones anónimas)

Aprenda a utilizar funciones lambda en Python. Domine funciones anónimas, devoluciones de llamadas en línea y clasificación de datos de listas con claves lambda.

Pruebe esta solución en el Editor

Descripción general

En Python, las funciones son ciudadanas de primera clase, lo que significa que pueden asignarse a variables, pasarse como argumentos a otras funciones y devolverse desde funciones. Si bien las funciones estándar se declaran utilizando la palabra clave `def`, Python también proporciona una sintaxis abreviada para crear funciones en línea anónimas: funciones `lambda`.

Una función lambda se define con la palabra clave `lambda`, seguida de una lista de argumentos, dos puntos y una sola expresión. La sintaxis es `argumentos lambda: expresión`. A diferencia de las funciones "def", las lambdas no requieren una declaración "return"; el resultado de la expresión se devuelve automáticamente. Están limitados a una única línea lógica, lo que los hace ideales para operaciones simples y únicas.

Las funciones Lambda se usan más comúnmente como argumentos para funciones de orden superior como `sorted()`, `map()` y `filter()`. Por ejemplo, puede pasar una función lambda al argumento `key` de `sorted()` para definir criterios de clasificación personalizados, o usarlos como funciones de devolución de llamada ligeras dentro de aplicaciones gráficas o controladas por eventos.

Código y salida de ejecución

Este script demuestra la construcción de funciones anónimas ligeras utilizando lambda.

lambda_functions.py
Pruébelo en el editor
# 1. Simple lambda function assigned to a variable
double = lambda x: x * 2
print("Double of 5:", double(5))

# 2. Multi-argument lambda
add = lambda x, y: x + y
print("Sum of 3 + 4:", add(3, 4))

# 3. Using lambda as a sorting key (sorting by age)
people = [
    {"name": "Alice", "age": 28},
    {"name": "Bob", "age": 22},
    {"name": "Charlie", "age": 35}
]
people.sort(key=lambda person: person["age"])
print("Sorted by age:", people)
Salida terminal
Double of 5: 10
Sum of 3 + 4: 7
Sorted by age: [{'name': 'Bob', 'age': 22}, {'name': 'Alice', 'age': 28}, {'name': 'Charlie', 'age': 35}]

Implementación paso a paso

  • Escriba la palabra clave lambda seguida de los nombres de los parámetros separados por comas.
  • Coloque dos puntos, seguido de la expresión única que desea evaluar y devolver.
  • Pase la lambda directamente como una devolución de llamada a funciones como sorted(), map() o filter().

Preguntas frecuentes

¿Puede una función lambda contener bucles o múltiples declaraciones?

No, las funciones lambda en Python están estrictamente limitadas a una sola expresión. Si necesita lógica compleja, bucles o asignaciones de variables, debe definir una función estándar usando def.

¿Debo asignar funciones lambda a variables?

Generalmente no. Las pautas de PEP 8 sugieren usar una declaración def estándar en lugar de asignar una lambda a una variable, ya que las funciones estándar proporcionan mejores nombres de seguimiento de pila.

Temas relacionados

Recursos recomendados de Python

Amplíe sus conocimientos con tutoriales interactivos relacionados, hojas de trucos y comparaciones de códigos.