Funciones Python Lambda: Guía de funciones anónimas

Aprenda a escribir funciones lambda anónimas en Python. Domine los patrones de programación funcional utilizando map(), filter() y sorted() con sintaxis lambda.

Pruébelo en el editor

Descripción general

En Python, las funciones lambda, también conocidas como funciones anónimas, son funciones pequeñas, rápidas y de una sola línea que no requieren la palabra clave estándar "def" ni un nombre formal. Están pensados ​​para un uso temporal y rápido, lo que le permite pasar lógica funcional como argumento directamente en línea. Esto hace que su código sea más compacto, lo que reduce la sobrecarga de escribir funciones auxiliares completas que solo se llaman en un lugar.

La sintaxis de una función lambda es simple: `argumentos lambda: expresión`. A diferencia de las funciones estándar, una lambda no tiene una declaración de "retorno" explícita; la expresión se evalúa y se devuelve automáticamente. Además, las funciones lambda están restringidas a una sola expresión, lo que significa que no se pueden escribir bucles, asignaciones o bloques de condiciones complejos de varias líneas dentro de ellas, lo que impone un enfoque limpio y funcional.

Las funciones Lambda se usan comúnmente en combinación con funciones integradas de orden superior como `map()` (que aplica una función a cada elemento de una lista), `filter()` (que retiene los elementos que coinciden con una condición) y `sorted()` (que clasifica los elementos usando una clave de clasificación personalizada). Por ejemplo, ordenar una lista de diccionarios por una clave de diccionario específica es muy sencillo cuando se utiliza una lambda como clave de clasificación. Comprender las funciones lambda le brinda una herramienta vital para escribir código Python limpio.

Código y salida de ejecución

Ordenar listas de diccionarios complejas y filtrar conjuntos de datos mediante funciones anónimas en línea.

# Sorting using lambda
students = [
    {"name": "Alice", "grade": 88},
    {"name": "Bob", "grade": 95},
    {"name": "Charlie", "grade": 90}
]

# Sort students by grade (descending)
sorted_students = sorted(students, key=lambda s: s["grade"], reverse=True)
print("Sorted students by grade:")
for student in sorted_students:
    print(f"- {student['name']}: {student['grade']}")

# Filtering using lambda
numbers = [1, 2, 3, 4, 5, 6, 7, 8]
odd_numbers = list(filter(lambda x: x % 2 != 0, numbers))
print(f"\nOdd numbers: {odd_numbers}")
Salida terminal
Sorted students by grade:
- Bob: 95
- Charlie: 90
- Alice: 88

Odd numbers: [1, 3, 5, 7]

Implementación paso a paso

  • Pasar criterios de clasificación personalizados a list.sort() y sorted()
  • Aplicación de transformaciones en línea en procesos de ciencia de datos
  • Definición de devoluciones de llamada rápidas en aplicaciones de interfaz de usuario basadas en eventos

Preguntas frecuentes

¿Puede una función lambda tomar múltiples argumentos?

Sí, puede definir varios argumentos separados por comas, por ejemplo, lambda x, y: x + y.

¿Por qué las funciones lambda se llaman anónimas?

Porque se crean sin un enlace de nombre, a diferencia de las funciones def que registran un nombre específico en el espacio de nombres local.

Temas relacionados

Recursos recomendados de Python

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