Funciones Lambda en Python: qué son y cómo usarlas

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Qué son las funciones lambda en Python?

Las funciones lambda son una forma compacta y elegante de definir funciones directamente dentro de expresiones. En Python, también se conocen como funciones lambda o funciones anónimas, ya que se crean sin nombre y se usan localmente, en lugares donde no tiene sentido definir una función completa con la palabra clave def.

Las funciones lambda destacan por su simplicidad y facilidad de uso. Se utilizan a menudo junto con funciones de orden superior como map(), filter() y sorted(). También son muy comunes en bibliotecas populares como pandas, NumPy, Flask, Tkinter y muchas otras herramientas del ecosistema Python.

Sintaxis básica de las funciones lambda

Estructura de una expresión lambda

La sintaxis de una función lambda en Python es la siguiente:

lambda argumentos: expresión

Donde:

  • argumentos — lista de parámetros de la función, similar a una función normal
  • expresión — una sola expresión cuyo resultado se devuelve como valor de la función

Características clave de las funciones lambda

Las funciones lambda en Python tienen varias propiedades importantes:

  • Siempre devuelven automáticamente el resultado de la expresión
  • No contienen la palabra clave return
  • El resultado de evaluar la expresión es el valor de retorno
  • Solo admiten una expresión en el cuerpo de la función

Ejemplos prácticos de expresiones lambda

Operaciones matemáticas simples

# Calcular el cuadrado de un número
square = lambda x: x ** 2
print(square(5))  # 25

# Sumar dos números
add = lambda a, b: a + b
print(add(3, 7))  # 10

# Verificar si un número es par
is_even = lambda x: x % 2 == 0
print(is_even(4))  # True

Lambda con expresiones condicionales

# Determinar el valor máximo
max_value = lambda x, y: x if x > y else y
print(max_value(10, 15))  # 15

# Clasificar números
categorize = lambda x: "positivo" if x > 0 else "negativo" if x < 0 else "cero"

Comparación entre lambda y funciones normales

Diferencias clave

Característica Función normal (def) Función lambda
Sintaxis def func(x): return x * 2 lambda x: x * 2
Número de expresiones Múltiples Solo una
Nombre Tiene nombre Generalmente anónima
Ámbito de uso Reutilización Operaciones únicas
Documentación Soporta docstring No soporta
Anotaciones de tipo Soporta Soporte limitado

Cuándo usar lambda

Las funciones lambda son más efectivas en los siguientes casos:

  • Operaciones simples de una sola línea
  • Usarse como argumentos de otras funciones
  • Cálculos temporales sin necesidad de reutilización
  • Trabajar con funciones de orden superior

Uso de lambda en funciones de orden superior

Función map()

La función map() aplica una función dada a cada elemento de un iterable:

numbers = [1, 2, 3, 4, 5]
squares = list(map(lambda x: x**2, numbers))
print(squares)  # [1, 4, 9, 16, 25]

# Convertir cadenas a mayúsculas
words = ["hola", "mundo", "python"]
uppercase = list(map(lambda s: s.upper(), words))
print(uppercase)  # ['HOLA', 'MUNDO', 'PYTHON']

Función filter()

Filter() crea un iterador con los elementos que cumplen una condición:

# Filtrar números pares
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)  # [2, 4, 6]

# Filtrar palabras con más de 3 letras
words = ["sol", "casa", "árbol", "luna"]
long_words = list(filter(lambda w: len(w) > 3, words))
print(long_words)  # ['casa', 'árbol']

Blogs

Book Recommendations