En muchos ejemplos de Python aparece algo como esto:
lambda x: x * 2
Y la pregunta típica es:
¿qué es una función lambda y cuándo debería usarla?
Las funciones lambda son útiles, pero no son mágicas ni reemplazan a las funciones normales.
En este artículo aprenderás:
- Qué es una función lambda
- Cómo se usa
- Cuándo tiene sentido usarla
- Cuándo NO usarla
- Errores comunes de principiantes
Todo explicado de forma clara y práctica.
¿Qué es una función lambda?
Una función lambda es una función anónima (sin nombre) que:
- Se define en una sola línea
- Tiene una expresión
- Devuelve un valor automáticamente
Forma general:
lambda argumentos: expresión
Comparación con una función normal
Función normal:
def cuadrado(x): return x * x
Función lambda equivalente:
lambda x: x * x
La diferencia es:
- La lambda no tiene nombre
- Es más corta
- Se usa directamente
Usar lambda con variables
cuadrado = lambda x: x * xprint(cuadrado(4))
Aunque es posible, no siempre es recomendable.
Uso típico de lambda: funciones pequeñas y puntuales
Las lambdas se usan principalmente como:
- Argumentos de otras funciones
- Operaciones simples
- Transformaciones rápidas
Lambda con map()
numeros = [1, 2, 3, 4]dobles = list(map(lambda x: x * 2, numeros))print(dobles)
Lambda con filter()
numeros = [1, 2, 3, 4, 5]pares = list(filter(lambda x: x % 2 == 0, numeros))print(pares)
Lambda con sorted()
personas = [ {"nombre": "Ana", "edad": 30}, {"nombre": "Luis", "edad": 25}]ordenadas = sorted(personas, key=lambda p: p["edad"])print(ordenadas)
Este es uno de los usos más comunes y útiles.
Lambdas con múltiples argumentos
lambda a, b: a + b
Funciona, pero debe seguir siendo simple.
Límites importantes de las funciones lambda
Una función lambda:
- ❌ No puede tener múltiples líneas
- ❌ No puede tener sentencias complejas
- ❌ No puede contener bucles o
ifcompletos - ❌ No es ideal para lógica compleja
Si la lógica crece, usa una función normal.
Cuándo NO usar lambda
No uses lambda cuando:
- La función es larga
- La lógica no es obvia
- Necesitas reutilizarla
- Quieres claridad y mantenimiento
El código legible siempre es mejor.
Error común: abusar de lambda
Muchos principiantes intentan usar lambda en todo.
Ejemplo poco claro:
resultado = list(map(lambda x: x * 2 if x > 3 else x, numeros))
Esto funciona, pero no es fácil de leer.
Regla práctica para principiantes
Usa lambda solo si:
- La función es muy corta
- Se usa una sola vez
- Mejora la legibilidad
Si dudas, usa def.
Ejemplo práctico correcto
precios = [10, 5, 8]precios_ordenados = sorted(precios, key=lambda x: x)
Claro, simple y legible.
Practicar funciones lambda
Para dominar lambda:
- Úsalas en contextos reales
- Léelas en código ajeno
- No fuerces su uso
👉 En SolveConPython.com los retos introducen lambda cuando tiene sentido, no como requisito artificial.
Conclusión
Las funciones lambda son útiles para casos concretos, pero:
- No reemplazan a las funciones normales
- Deben usarse con moderación
- La claridad siempre es prioridad
Entender cuándo usarlas es más importante que saber escribirlas.
Siguiente artículo
¿Qué son los módulos y paquetes en Python y cómo organizan el código?