Python para Data Science
Python para Data Science Texto Leccion

Funciones y Lambda

Funciones y lambdas Las funciones encapsulan lógica que reutilizas y dan nombre a lo que hace tu código. En ciencia de datos las usarás para limpiar columnas, calcular métricas y transformar valores. Las lambdas, además, son funciones anónimas de una línea que encajan perfecto con map, filter y el método apply de Pandas. Definir funciones # Función básica con retorno def saludar(nombre): return f"¡Hola {nombre}!" # Parámetro con valor por defecto def saludar(nombre="amigo"): return f"¡Hola {nomb
Tiempo de estudio
12 Min

Funciones y lambdas



Las funciones encapsulan lógica que reutilizas y dan nombre a lo que hace tu código. En ciencia de datos las usarás para limpiar columnas, calcular métricas y transformar valores. Las lambdas, además, son funciones anónimas de una línea que encajan perfecto con map, filter y el método apply de Pandas.



Definir funciones



# Función básica con retorno
def saludar(nombre):
return f"¡Hola {nombre}!"

# Parámetro con valor por defecto
def saludar(nombre="amigo"):
return f"¡Hola {nombre}!"

# Cálculo con varios parámetros
def calcular_imc(peso, altura):
return peso / (altura ** 2)

# Retorno múltiple (devuelve una tupla)
def estadisticas(numeros):
return min(numeros), max(numeros), sum(numeros) / len(numeros)

minimo, maximo, promedio = estadisticas([1, 2, 3, 4, 5])


Funciones lambda



Una lambda es una función anónima que cabe en una expresión. Úsala para transformaciones cortas que no merecen un def completo.



# Sintaxis: lambda argumentos: expresión
cuadrado = lambda x: x ** 2
cuadrado(5) # 25

numeros = [1, 2, 3, 4, 5]

# map: aplica la función a cada elemento
cuadrados = list(map(lambda x: x**2, numeros)) # [1, 4, 9, 16, 25]

# filter: conserva los que cumplen la condición
pares = list(filter(lambda x: x % 2 == 0, numeros)) # [2, 4]

# sorted: ordenar por una clave calculada
personas = [{'nombre': 'Ana', 'edad': 25}, {'nombre': 'Luis', 'edad': 30}]
ordenado = sorted(personas, key=lambda p: p['edad'])


Atención

No abuses de las lambdas. Si la lógica tiene varias líneas o necesita un nombre descriptivo, usa def: tu código quedará más claro y fácil de depurar.



Funciones integradas muy útiles



numeros = [3, 1, 4, 1, 5, 9, 2, 6]

sum(numeros) # 31
min(numeros) # 1
max(numeros) # 9

# enumerate: índice + valor a la vez
for i, num in enumerate(numeros):
print(f"Índice {i}: {num}")

# zip: recorrer dos listas en paralelo
nombres = ['Ana', 'Luis', 'María']
edades = [25, 30, 28]
for nombre, edad in zip(nombres, edades):
print(f"{nombre} tiene {edad} años")


¿Cuál es la diferencia entre map y una list comprehension?

Ambas transforman un iterable. map(función, iterable) devuelve un objeto perezoso que conviene convertir con list(); la comprehension [f(x) for x in iterable] suele ser más legible en Python. Para transformaciones simples, elige la que tu equipo lea con más comodidad.



¿Qué devuelve list(filter(lambda x: x > 2, [1, 2, 3, 4]))?

filter conserva solo los elementos donde la lambda devuelve True, es decir los mayores que 2: [3, 4].


Ejercicio práctico


Objetivo: combinar funciones, lambdas y herramientas integradas.



  1. Escribe una función normalizar(texto) que devuelva el texto en minúsculas y sin espacios extremos.

  2. Dada una lista de precios, usa map con una lambda para aplicar un 21% de IVA.

  3. Con filter, quédate solo con los precios finales mayores a 100.

  4. Usa zip para emparejar cada producto con su precio final e imprímelos.


Entregable: notebook con la lista de precios con IVA y la lista filtrada impresas.



Para recordar


  • Las funciones dan nombre y reutilización; las lambdas resuelven transformaciones cortas.

  • map transforma, filter selecciona, sorted ordena por una clave.

  • enumerate y zip evitan índices manuales propensos a errores.

Texto Leccion 3/14
Estas viendo
Funciones y Lambda
Hablar por WhatsAppContactar por WhatsApp