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.
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.
# 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)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
Aprenda a ordenar una lista en Python usando el método sort() y la función sorted(). Descubra ejemplos de ordenación inversa y clasificación de claves personalizadas.
Cómo utilizar la comprensión de listas en PythonAprenda a utilizar listas por comprensión en Python. Escriba bucles concisos, aplique filtros condicionales y cree matrices con una sintaxis visual limpia.
Recursos recomendados de Python
Amplíe sus conocimientos con tutoriales interactivos relacionados, hojas de trucos y comparaciones de códigos.
Funciones de Python
Domina las funciones de Python. Aprenda a escribir código reutilizable usando def, definir argumentos, valores de retorno y comprender el alcance a nivel local y global.
Hoja de referencia de funciones del módulo matemático de Python
Guía de referencia rápida para la biblioteca estándar matemática de Python. Aprenda a utilizar funciones trigonométricas, logarítmicas, de redondeo y aritméticas.
Python vs JavaScript: ¿Qué lenguaje de programación es mejor?
Una comparación completa entre Python y JavaScript. Explore las diferencias de sintaxis, el rendimiento, los casos de uso (backend frente a frontend) y ejemplos de codificación.