Las funciones lambda en Python son una forma concisa de crear funciones anónimas (sin nombre). Son útiles cuando necesitas una función pequeña y desechable que se utiliza en un lugar específico. Las funciones lambda se definen utilizando la palabra clave lambda
seguida de los parámetros, dos puntos y una expresión.
Conceptos Clave
- Sintaxis de una Función Lambda:
lambda argumentos: expresión
- Características:
- Son funciones anónimas, es decir, no tienen un nombre explícito.
- Pueden tener múltiples argumentos, pero solo una expresión.
- La expresión es evaluada y devuelta automáticamente.
Ejemplos Prácticos
Ejemplo 1: Función Lambda Básica
# Función lambda que suma dos números suma = lambda x, y: x + y resultado = suma(5, 3) print(resultado) # Salida: 8
Explicación:
lambda x, y: x + y
define una función que toma dos argumentosx
yy
y devuelve su suma.suma(5, 3)
llama a la función lambda con los argumentos5
y3
.
Ejemplo 2: Uso en Funciones de Orden Superior
Las funciones lambda son especialmente útiles cuando se utilizan con funciones de orden superior como map()
, filter()
y sorted()
.
Uso con map()
# Lista de números numeros = [1, 2, 3, 4, 5] # Usando lambda para duplicar cada número en la lista duplicados = list(map(lambda x: x * 2, numeros)) print(duplicados) # Salida: [2, 4, 6, 8, 10]
Explicación:
map(lambda x: x * 2, numeros)
aplica la función lambda a cada elemento de la listanumeros
.
Uso con filter()
# Lista de números numeros = [1, 2, 3, 4, 5] # Usando lambda para filtrar números pares pares = list(filter(lambda x: x % 2 == 0, numeros)) print(pares) # Salida: [2, 4]
Explicación:
filter(lambda x: x % 2 == 0, numeros)
aplica la función lambda para filtrar solo los números pares de la listanumeros
.
Uso con sorted()
# Lista de tuplas puntos = [(1, 2), (3, 1), (5, 0), (2, 4)] # Usando lambda para ordenar por el segundo elemento de cada tupla ordenados = sorted(puntos, key=lambda x: x[1]) print(ordenados) # Salida: [(5, 0), (3, 1), (1, 2), (2, 4)]
Explicación:
sorted(puntos, key=lambda x: x[1])
utiliza la función lambda para ordenar la lista de tuplas por el segundo elemento de cada tupla.
Ejercicios Prácticos
Ejercicio 1: Filtrar Números Impares
Escribe una función lambda que filtre los números impares de una lista de números.
numeros = [10, 15, 20, 25, 30, 35, 40] impares = list(filter(lambda x: x % 2 != 0, numeros)) print(impares) # Salida esperada: [15, 25, 35]
Ejercicio 2: Ordenar Palabras por Longitud
Usa una función lambda para ordenar una lista de palabras por su longitud.
palabras = ["manzana", "kiwi", "banana", "cereza", "mango"] ordenadas = sorted(palabras, key=lambda x: len(x)) print(ordenadas) # Salida esperada: ['kiwi', 'mango', 'banana', 'cereza', 'manzana']
Ejercicio 3: Transformar una Lista de Números
Escribe una función lambda que transforme una lista de números elevando cada número al cuadrado.
numeros = [1, 2, 3, 4, 5] cuadrados = list(map(lambda x: x ** 2, numeros)) print(cuadrados) # Salida esperada: [1, 4, 9, 16, 25]
Soluciones a los Ejercicios
Solución al Ejercicio 1
numeros = [10, 15, 20, 25, 30, 35, 40] impares = list(filter(lambda x: x % 2 != 0, numeros)) print(impares) # Salida: [15, 25, 35]
Solución al Ejercicio 2
palabras = ["manzana", "kiwi", "banana", "cereza", "mango"] ordenadas = sorted(palabras, key=lambda x: len(x)) print(ordenadas) # Salida: ['kiwi', 'mango', 'banana', 'cereza', 'manzana']
Solución al Ejercicio 3
numeros = [1, 2, 3, 4, 5] cuadrados = list(map(lambda x: x ** 2, numeros)) print(cuadrados) # Salida: [1, 4, 9, 16, 25]
Resumen
Las funciones lambda en Python son una herramienta poderosa para crear funciones pequeñas y anónimas de manera concisa. Son especialmente útiles cuando se utilizan con funciones de orden superior como map()
, filter()
y sorted()
. Practicar con funciones lambda te ayudará a escribir código más limpio y eficiente.
En el siguiente tema, exploraremos los módulos y paquetes en Python, lo que te permitirá organizar y reutilizar tu código de manera más efectiva.
Curso de Programación en Python
Módulo 1: Introducción a Python
- Introducción a Python
- Configuración del Entorno de Desarrollo
- Sintaxis de Python y Tipos de Datos Básicos
- Variables y Constantes
- Entrada y Salida Básica
Módulo 2: Estructuras de Control
- Sentencias Condicionales
- Bucles: for y while
- Herramientas de Control de Flujo
- Comprensiones de Listas
Módulo 3: Funciones y Módulos
- Definición de Funciones
- Argumentos de Función
- Funciones Lambda
- Módulos y Paquetes
- Visión General de la Biblioteca Estándar
Módulo 4: Estructuras de Datos
Módulo 5: Programación Orientada a Objetos
Módulo 6: Manejo de Archivos
- Lectura y Escritura de Archivos
- Trabajo con Archivos CSV
- Manejo de Datos JSON
- Operaciones de Archivos y Directorios
Módulo 7: Manejo de Errores y Excepciones
- Introducción a las Excepciones
- Manejo de Excepciones
- Lanzamiento de Excepciones
- Excepciones Personalizadas
Módulo 8: Temas Avanzados
- Decoradores
- Generadores
- Administradores de Contexto
- Concurrencia: Hilos y Procesos
- Asyncio para Programación Asíncrona
Módulo 9: Pruebas y Depuración
- Introducción a las Pruebas
- Pruebas Unitarias con unittest
- Desarrollo Guiado por Pruebas
- Técnicas de Depuración
- Uso de pdb para Depuración
Módulo 10: Desarrollo Web con Python
- Introducción al Desarrollo Web
- Fundamentos del Framework Flask
- Construcción de APIs REST con Flask
- Introducción a Django
- Construcción de Aplicaciones Web con Django
Módulo 11: Ciencia de Datos con Python
- Introducción a la Ciencia de Datos
- NumPy para Computación Numérica
- Pandas para Manipulación de Datos
- Matplotlib para Visualización de Datos
- Introducción al Aprendizaje Automático con scikit-learn