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

  1. Sintaxis de una Función Lambda:
    lambda argumentos: expresión
    
  2. 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 argumentos x y y y devuelve su suma.
  • suma(5, 3) llama a la función lambda con los argumentos 5 y 3.

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 lista numeros.

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 lista numeros.

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

Módulo 2: Estructuras de Control

Módulo 3: Funciones y Módulos

Módulo 4: Estructuras de Datos

Módulo 5: Programación Orientada a Objetos

Módulo 6: Manejo de Archivos

Módulo 7: Manejo de Errores y Excepciones

Módulo 8: Temas Avanzados

Módulo 9: Pruebas y Depuración

Módulo 10: Desarrollo Web con Python

Módulo 11: Ciencia de Datos con Python

Módulo 12: Proyecto Final

© Copyright 2024. Todos los derechos reservados