circle-info
Desarrollo en curso, en breve se publicarán el resto de temas.

Capítulo 7: Funciones integradas e iterables

Python viene equipado con una "caja de herramientas" de funciones integradas (built-in) que están siempre disponibles, sin necesidad de importar ningún módulo. Estas funciones cubren un amplio espectro de tareas comunes, desde operaciones matemáticas hasta la manipulación de colecciones de datos. Este capítulo explora las más importantes y se adentra en conceptos más avanzados como los generadores, que permiten manejar grandes volúmenes de datos de manera increíblemente eficiente.

7.1. ¿Qué son las funciones integradas?

Las funciones integradas (built-in functions) son funciones predefinidas que forman parte del núcleo de Python. Están siempre disponibles sin necesidad de importar módulos y están optimizadas para máximo rendimiento.

Puedes ver la lista completa ejecutando:

print(dir(__builtins__))

Todas estas funciones están perfectamente documentadas en: docs.python.org/3/library/functions.htmlarrow-up-right


7.2. Funciones matemáticas

A continuación se resumen algunas de las funciones más comunes para cálculos matemáticos.

Funciones matemáticas

Función
Descripción
Ejemplo

abs(x)

Devuelve el valor absoluto de x.

abs(-5)5

divmod(a, b)

Devuelve el cociente y el resto.

divmod(17, 5)(3, 2)

max(iterable)

Devuelve el valor máximo de un iterable.

max([1, 5, 3])5

min(iterable)

Devuelve el valor mínimo de un iterable.

min([1, 5, 3])1

pow(base, exp)

Calcula base elevado a la potencia exp.

pow(2, 3)8

round(n, d)

Redondea el número n a d decimales.

round(3.14159, 2)3.14

sum(iterable)

Suma todos los elementos de un iterable.

sum([1, 2, 3])6

Ejemplos prácticos


7.3. Funciones para codificación y representación

A continuación se resumen algunas de las funciones más comunes para la codificación y representación de datos y valores numéricos.

Función
Descripción
Ejemplo

bin(x)

Convierte un entero a su representación binaria.

bin(10)"0b1010"

chr(x)

Devuelve el carácter correspondiente al código Unicode i.

chr(65)"A"

hex(x)

Convierte un entero a su representación hexadecimal.

hex(255)"0xff"

oct(x)

Convierte un entero a su representación octal.

hex(8)"0o10"

ord(char)

Devuelve el código Unicode del carácter c.

ord("A")65

Ejemplos prácticos


7.4. Funciones para iterables

Estas funciones son esenciales para trabajar con colecciones de datos como listas, tuplas o diccionarios.

Funciones de verificación y evaluación

Permiten comprobar o analizar propiedades generales de un conjunto de elementos. Pueden verificar condiciones lógicas o medir las características del iterable, como su longitud.

Función
Descripción
Ejemplo

all(iterable)

Devuelve True si todos los elementos son verdaderos.

all([True, True, False])False

any(iterable)

Devuelve True si al menos un elemento es verdadero.

any([False, True, False])True

len(obj)

Devuelve el número de elementos (la longitud) de un iterable.

len([1, 2, 3])3

Ejemplos prácticos

Funciones de transformación y generación de iteradores

Permiten procesar, ordenar, combinar o filtrar datos de manera funcional, devolviendo nuevos iteradores que pueden recorrerse con bucles o convertirse en listas.

Función
Operación
Descripción
Ejemplo

enumerate(iterable)

Enumeración

Devuelve un iterador de tuplas que contienen un contador (índice) y el valor de cada elemento. Muy útil para bucles for.

list(enumerate(

['a','b']))[(0,'a'), (1,'b')]

zip(*iterables)

Combinación

Combina múltiples iterables en paralelo, creando un iterador de tuplas donde cada tupla contiene un elemento de cada iterable de entrada.

list(zip([1,2],

['a','b']))[(1,'a'), (2,'b')]

map(func,iterable)

Transformación

Aplica una función a cada elemento de un iterable y devuelve un iterador con los resultados.

list(map(str.upper,

['a','b']))['A','B']

filter(func,iterable)

Filtrado

Devuelve un iterador con los elementos del iterable para los cuales la función devuelve True.

list(filter(

lambda x: x>0,

[-2,3,0]))[3]

sorted(iterable)

Ordenación

Devuelve una nueva lista ordenada a partir de los elementos del iterable.

sorted([3,1,2])[1,2,3]

reversed(iterable)

Inversión

Devuelve un iterador que recorre el iterable en orden inverso.

list(reversed([1,2,3]))[3,2,1]

Ejemplos enumerate(): Indexar elementos

Ejemplos zip(): Combinar elementos

Ejemplos map(): Transformar elementos

Ejemplos filter(): Filtrar elementos

Ejemplos sorted() y reversed(): Reordenar elementos


7.5. Funciones de conversión de tipos

Estas funciones permiten transformar datos de un tipo a otro, una tarea fundamental en programación.

Función
Descripción
Ejemplo

bool(x)

Convierte x a un booleano.

bool(0)False

int(x)

Convierte x a un entero.

int("42")42

float(x)

Convierte x a un número de punto flotante.

float("3.14")3.14

str(x)

Convierte x a una cadena de texto.

str(42)"42"

list(iterable)

Convierte un iterable a una lista.

list("abc")['a', 'b', 'c']

tuple(iterable)

Convierte un iterable a una tupla.

tuple([1, 2, 3])(1, 2, 3)

set(iterable)

Convierte un iterable a un conjunto (eliminando duplicados).

set([1, 1, 2, 3]){1, 2, 3}

dict()

Crea un diccionario.

dict([('a', 1), ('b', 2)]){'a': 1, 'b': 2}

Ejemplos prácticos


7.6. Generadores: Iteradores simplificados

Los generadores son una forma elegante y eficiente de crear iteradores. En lugar de construir una lista completa en memoria, un generador produce valores "bajo demanda" utilizando la palabra clave yield. Cada vez que se solicita un valor, la función generadora se ejecuta hasta el yield, entrega el valor y pausa su estado hasta la siguiente solicitud.

Generador básico

Los generadores son extremadamente eficientes en el uso de memoria, especialmente para secuencias muy largas. La sintaxis de las comprensiones de listas también se puede adaptar para crear expresiones generadoras, que son aún más concisas:

El resultado muestra una diferencia drástica en el uso de memoria, demostrando el poder de los generadores.


Resumen del Capítulo

Las funciones integradas de Python y los conceptos de iteradores/generadores forman parte del arsenal fundamental de todo programador Python. Estas herramientas no solo simplifican el código, sino que también optimizan el rendimiento y el uso de memoria, especialmente cuando se trabaja con grandes volúmenes de datos.

💡 Conceptos Clave:

  • Funciones matemáticas: abs, max, min, sum, pow, etc.

  • Funciones para iterables: len, map, filter, zip, enumerate, sorted, etc.

  • Conversión de tipos: int, float, str, list, tuple, set, dict

  • Generadores: Funciones que usan yield para generar valores bajo demanda

  • Eficiencia de memoria: Generadores vs listas para grandes volúmenes de datos

🤔 Preguntas de Reflexión:

  1. ¿En qué situaciones son más útiles los generadores que las listas?

  2. ¿Cómo pueden las funciones map y filter mejorar la legibilidad del código?

  3. ¿Qué ventajas aporta enumerate() frente a usar range(len())?

🔧 Ejercicio Práctico:

Crea un programa que:

  1. Use funciones matemáticas para calcular estadísticas de un dataset

  2. Use map, filter y zip para transformar y combinar datos

  3. Compare rendimiento entre listas y generadores con datos grandes

Si bien estas herramientas integradas son potentes, nos falta aún por conocer cuáles son los métodos nativos que nos ofrecen las estructuras básicas de datos: cadenas, listas, diccionarios y conjuntos. En el siguiente capítulo se aborda cómo estos recursos permiten transformar, ordenar, buscar, filtrar y organizar la información de manera robusta, adaptable y "pythónica".


Última actualización

¿Te fue útil?