Python

Python

Tutorial Python: Comprehensions

Aprende comprehensions en Python para crear listas, diccionarios y conjuntos de forma concisa y eficiente con ejemplos prácticos y sintaxis clara.

Aprende Python y certifícate

List comprehension

Las list comprehensions son una característica elegante y concisa de Python que permite crear listas de manera expresiva en una sola línea de código. Esta construcción sintáctica proporciona una alternativa más legible y compacta a los bucles tradicionales cuando necesitamos generar, transformar o filtrar elementos para crear una nueva lista.

Sintaxis básica

La sintaxis básica de una list comprehension es:

[expresión for elemento in iterable]

Donde:

  • expresión es la operación que se aplicará a cada elemento
  • elemento es la variable que representa cada ítem del iterable
  • iterable es la colección sobre la que iteramos (lista, tupla, cadena, etc.)

Comparación con bucles tradicionales

Para entender mejor el valor de las list comprehensions, comparemos cómo se crearía una lista con un bucle tradicional y con una list comprehension:

Usando un bucle tradicional:

# Crear una lista con los cuadrados de los números del 0 al 9
cuadrados = []
for numero in range(10):
    cuadrados.append(numero ** 2)
    
print(cuadrados)  # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

Usando list comprehension:

# El mismo resultado con list comprehension
cuadrados = [numero ** 2 for numero in range(10)]
print(cuadrados)  # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

Como puedes ver, la list comprehension es más concisa y expresiva, reduciendo cuatro líneas de código a una sola, sin sacrificar la legibilidad.

Añadiendo condiciones

Las list comprehensions también pueden incluir condiciones para filtrar elementos:

[expresión for elemento in iterable if condición]

Por ejemplo, si queremos obtener solo los números pares del 0 al 9:

# Con bucle tradicional
pares = []
for numero in range(10):
    if numero % 2 == 0:
        pares.append(numero)
        
print(pares)  # [0, 2, 4, 6, 8]

# Con list comprehension
pares = [numero for numero in range(10) if numero % 2 == 0]
print(pares)  # [0, 2, 4, 6, 8]

Casos de uso prácticos

Transformación de datos

Las list comprehensions son ideales para transformar datos de una lista:

# Convertir temperaturas de Celsius a Fahrenheit
celsius = [0, 10, 20, 30, 40]
fahrenheit = [(9/5) * temp + 32 for temp in celsius]
print(fahrenheit)  # [32.0, 50.0, 68.0, 86.0, 104.0]

Extracción de datos

Podemos extraer información específica de estructuras complejas:

# Extraer nombres de una lista de diccionarios
usuarios = [
    {"nombre": "Ana", "edad": 28},
    {"nombre": "Carlos", "edad": 35},
    {"nombre": "Elena", "edad": 23}
]

nombres = [usuario["nombre"] for usuario in usuarios]
print(nombres)  # ['Ana', 'Carlos', 'Elena']

Manipulación de cadenas

Las list comprehensions son muy útiles para procesar texto:

# Convertir una lista de palabras a mayúsculas
palabras = ["python", "es", "genial"]
mayusculas = [palabra.upper() for palabra in palabras]
print(mayusculas)  # ['PYTHON', 'ES', 'GENIAL']

# Extraer la primera letra de cada palabra
primeras_letras = [palabra[0] for palabra in palabras]
print(primeras_letras)  # ['p', 'e', 'g']

Filtrado de datos

Podemos filtrar elementos basados en condiciones:

# Filtrar números mayores que 5
numeros = [2, 8, 1, 6, 3, 9, 4]
mayores_que_cinco = [num for num in numeros if num > 5]
print(mayores_que_cinco)  # [8, 6, 9]

# Filtrar palabras que empiezan con 'a'
frutas = ["manzana", "banana", "arándano", "pera", "aguacate"]
frutas_con_a = [fruta for fruta in frutas if fruta.startswith('a')]
print(frutas_con_a)  # ['arándano', 'aguacate']

Rendimiento y consideraciones

Las list comprehensions no solo son más concisas, sino que también suelen ser más eficientes que los bucles tradicionales para crear listas. Esto se debe a que están optimizadas a nivel de implementación en Python.

Sin embargo, es importante considerar algunas recomendaciones:

  • Legibilidad: Aunque son concisas, evita crear list comprehensions demasiado complejas que dificulten la lectura del código.

  • Memoria: Ten cuidado con crear list comprehensions sobre colecciones muy grandes, ya que se crea una lista completa en memoria.

# Para colecciones muy grandes, considera usar generadores en lugar de list comprehensions
# Esto no crea toda la lista en memoria de una vez
numeros_grandes = (x for x in range(1_000_000))  # Paréntesis en lugar de corchetes
  • Expresividad: Las list comprehensions brillan cuando la operación a realizar es simple y directa. Para lógica más compleja, un bucle tradicional puede ser más apropiado.

Ejemplo de aplicación real

Veamos un ejemplo más completo donde las list comprehensions pueden simplificar significativamente el código:

# Supongamos que tenemos datos de ventas por producto
ventas = [
    {"producto": "laptop", "unidades": 20, "precio": 800},
    {"producto": "teclado", "unidades": 50, "precio": 25},
    {"producto": "mouse", "unidades": 30, "precio": 15},
    {"producto": "monitor", "unidades": 10, "precio": 200}
]

# Calcular el valor total de ventas por producto
valor_por_producto = [item["unidades"] * item["precio"] for item in ventas]
print(valor_por_producto)  # [16000, 1250, 450, 2000]

# Encontrar productos con ventas superiores a $1000
productos_alto_valor = [item["producto"] for item in ventas if item["unidades"] * item["precio"] > 1000]
print(productos_alto_valor)  # ['laptop', 'teclado', 'monitor']

Las list comprehensions son una herramienta poderosa en Python que te permite escribir código más limpio, conciso y a menudo más eficiente. Dominarlas es esencial para escribir código Python idiomático y expresivo.

Dict comprehension

Las dict comprehensions son una extensión natural de las list comprehensions en Python, permitiéndonos crear diccionarios de manera concisa y elegante en una sola línea de código. Esta construcción sintáctica es especialmente útil cuando necesitamos generar, transformar o filtrar pares clave-valor para crear un nuevo diccionario.

Sintaxis básica

La sintaxis básica de una dict comprehension es:

{clave: valor for elemento in iterable}

Donde:

  • clave es la expresión que generará las claves del diccionario
  • valor es la expresión que generará los valores asociados
  • elemento es la variable que representa cada ítem del iterable
  • iterable es la colección sobre la que iteramos

Comparación con métodos tradicionales

Veamos cómo se crearía un diccionario con un enfoque tradicional versus una dict comprehension:

Usando un bucle tradicional:

# Crear un diccionario con números como claves y sus cuadrados como valores
cuadrados = {}
for numero in range(5):
    cuadrados[numero] = numero ** 2
    
print(cuadrados)  # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

Usando dict comprehension:

# El mismo resultado con dict comprehension
cuadrados = {numero: numero ** 2 for numero in range(5)}
print(cuadrados)  # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

La dict comprehension reduce significativamente la cantidad de código necesario, haciéndolo más expresivo y directo.

Añadiendo condiciones

Al igual que con las list comprehensions, podemos incluir condiciones para filtrar elementos:

{clave: valor for elemento in iterable if condición}

Por ejemplo, si queremos crear un diccionario solo con los números pares y sus cuadrados:

# Con bucle tradicional
pares_cuadrados = {}
for numero in range(10):
    if numero % 2 == 0:
        pares_cuadrados[numero] = numero ** 2
        
print(pares_cuadrados)  # {0: 0, 2: 4, 4: 16, 6: 36, 8: 64}

# Con dict comprehension
pares_cuadrados = {numero: numero ** 2 for numero in range(10) if numero % 2 == 0}
print(pares_cuadrados)  # {0: 0, 2: 4, 4: 16, 6: 36, 8: 64}

Casos de uso prácticos

Transformación de diccionarios existentes

Las dict comprehensions son ideales para transformar diccionarios:

# Convertir valores de un diccionario a mayúsculas
frutas = {"a": "apple", "b": "banana", "c": "cherry"}
frutas_mayusculas = {clave: valor.upper() for clave, valor in frutas.items()}
print(frutas_mayusculas)  # {'a': 'APPLE', 'b': 'BANANA', 'c': 'CHERRY'}

Invertir un diccionario

Podemos invertir fácilmente las claves y valores de un diccionario:

# Invertir claves y valores
original = {"a": 1, "b": 2, "c": 3}
invertido = {valor: clave for clave, valor in original.items()}
print(invertido)  # {1: 'a', 2: 'b', 3: 'c'}

Creación de diccionarios a partir de listas

Podemos crear diccionarios a partir de una o más listas:

# Crear un diccionario a partir de dos listas
claves = ["nombre", "edad", "ciudad"]
valores = ["Ana", 28, "Madrid"]
persona = {claves[i]: valores[i] for i in range(len(claves))}
print(persona)  # {'nombre': 'Ana', 'edad': 28, 'ciudad': 'Madrid'}

# Alternativa usando zip (más idiomático en Python)
persona = {clave: valor for clave, valor in zip(claves, valores)}
print(persona)  # {'nombre': 'Ana', 'edad': 28, 'ciudad': 'Madrid'}

Filtrado de diccionarios

Podemos filtrar elementos de un diccionario basándonos en condiciones:

# Filtrar elementos de un diccionario por valor
stock = {"manzanas": 10, "plátanos": 3, "naranjas": 25, "peras": 0}
disponibles = {fruta: cantidad for fruta, cantidad in stock.items() if cantidad > 0}
print(disponibles)  # {'manzanas': 10, 'plátanos': 3, 'naranjas': 25}

Procesamiento de datos estructurados

Las dict comprehensions son muy útiles para procesar y transformar datos estructurados:

# Extraer información específica de una lista de diccionarios
estudiantes = [
    {"id": 1, "nombre": "Ana", "nota": 8.5},
    {"id": 2, "nombre": "Carlos", "nota": 7.2},
    {"id": 3, "nombre": "Elena", "nota": 9.3}
]

# Crear un diccionario con id como clave y nombre como valor
id_nombre = {estudiante["id"]: estudiante["nombre"] for estudiante in estudiantes}
print(id_nombre)  # {1: 'Ana', 2: 'Carlos', 3: 'Elena'}

# Crear un diccionario con nombre como clave y nota como valor
nombre_nota = {estudiante["nombre"]: estudiante["nota"] for estudiante in estudiantes}
print(nombre_nota)  # {'Ana': 8.5, 'Carlos': 7.2, 'Elena': 9.3}

Combinando condiciones en clave y valor

Podemos aplicar lógica tanto a las claves como a los valores:

# Crear un diccionario con nombres en mayúsculas y notas redondeadas
nombre_nota_formateado = {
    estudiante["nombre"].upper(): round(estudiante["nota"]) 
    for estudiante in estudiantes
}
print(nombre_nota_formateado)  # {'ANA': 8, 'CARLOS': 7, 'ELENA': 9}

Rendimiento y consideraciones

Las dict comprehensions, al igual que las list comprehensions, suelen ser más eficientes que los bucles tradicionales para crear diccionarios. Sin embargo, hay algunas consideraciones importantes:

  • Legibilidad: Mantén las dict comprehensions simples. Si la expresión se vuelve demasiado compleja, considera usar un bucle tradicional.

  • Claves únicas: Recuerda que los diccionarios requieren claves únicas. Si tu dict comprehension genera claves duplicadas, las posteriores sobrescribirán a las anteriores.

# Ejemplo de sobrescritura de claves
letras = ["a", "b", "a", "c"]
conteo = {letra: letras.count(letra) for letra in letras}
print(conteo)  # {'a': 2, 'b': 1, 'c': 1}

# Para evitar duplicados, puedes usar un conjunto
conteo = {letra: letras.count(letra) for letra in set(letras)}
print(conteo)  # {'a': 2, 'b': 1, 'c': 1}
  • Memoria: Para colecciones muy grandes, considera si realmente necesitas todo el diccionario en memoria a la vez.

Ejemplo de aplicación real

Veamos un ejemplo más completo donde las dict comprehensions pueden simplificar significativamente el código:

# Supongamos que tenemos datos de ventas por región
ventas_por_region = [
    {"region": "Norte", "producto": "A", "ventas": 100},
    {"region": "Norte", "producto": "B", "ventas": 200},
    {"region": "Sur", "producto": "A", "ventas": 300},
    {"region": "Sur", "producto": "B", "ventas": 150},
    {"region": "Este", "producto": "A", "ventas": 250},
    {"region": "Oeste", "producto": "B", "ventas": 50}
]

# Crear un diccionario con el total de ventas por región
total_por_region = {}
for venta in ventas_por_region:
    region = venta["region"]
    if region in total_por_region:
        total_por_region[region] += venta["ventas"]
    else:
        total_por_region[region] = venta["ventas"]

print(total_por_region)
# {'Norte': 300, 'Sur': 450, 'Este': 250, 'Oeste': 50}

# La misma operación con dict comprehension y defaultdict
from collections import defaultdict

# Primero agrupamos las ventas por región
ventas_agrupadas = defaultdict(int)
for venta in ventas_por_region:
    ventas_agrupadas[venta["region"]] += venta["ventas"]

# Luego convertimos el defaultdict a un diccionario normal
total_por_region = dict(ventas_agrupadas)
print(total_por_region)
# {'Norte': 300, 'Sur': 450, 'Este': 250, 'Oeste': 50}

# O de forma más directa con dict comprehension (para casos simples)
# Nota: esto funciona porque estamos creando un nuevo diccionario, no agrupando
productos_a = {venta["region"]: venta["ventas"] for venta in ventas_por_region if venta["producto"] == "A"}
print(productos_a)
# {'Norte': 100, 'Sur': 300, 'Este': 250}

Las dict comprehensions son una herramienta potente que te permite escribir código más conciso y expresivo para la creación y transformación de diccionarios en Python. Dominar esta técnica te ayudará a escribir código más elegante y mantenible.

Set comprehension

Las set comprehensions completan la familia de comprehensions en Python, proporcionando una forma elegante y concisa de crear conjuntos (sets) en una sola línea de código. Al igual que sus contrapartes para listas y diccionarios, esta construcción permite generar, transformar y filtrar elementos para crear un nuevo conjunto de manera expresiva.

Sintaxis básica

La sintaxis básica de una set comprehension es:

{expresión for elemento in iterable}

Donde:

  • expresión es la operación que se aplicará a cada elemento
  • elemento es la variable que representa cada ítem del iterable
  • iterable es la colección sobre la que iteramos

Observa que la sintaxis es muy similar a la list comprehension, con la diferencia de que usamos llaves {} en lugar de corchetes [].

Comparación con métodos tradicionales

Veamos cómo se crearía un conjunto usando un enfoque tradicional versus una set comprehension:

Usando un bucle tradicional:

# Crear un conjunto con los cuadrados de los números del 0 al 4
cuadrados = set()
for numero in range(5):
    cuadrados.add(numero ** 2)
    
print(cuadrados)  # {0, 1, 4, 9, 16}

Usando set comprehension:

# El mismo resultado con set comprehension
cuadrados = {numero ** 2 for numero in range(5)}
print(cuadrados)  # {0, 1, 4, 9, 16}

La set comprehension reduce el código a una sola línea, haciéndolo más conciso y directo.

Características únicas de los conjuntos

Es importante recordar que los conjuntos en Python tienen dos características fundamentales:

  1. No mantienen un orden específico de los elementos
  2. No permiten elementos duplicados

Estas características hacen que las set comprehensions sean particularmente útiles para eliminar duplicados de una secuencia:

# Eliminar duplicados de una lista
numeros = [1, 2, 2, 3, 4, 3, 5, 5, 1]
numeros_unicos = {numero for numero in numeros}
print(numeros_unicos)  # {1, 2, 3, 4, 5}

Añadiendo condiciones

Al igual que con las otras comprehensions, podemos incluir condiciones para filtrar elementos:

{expresión for elemento in iterable if condición}

Por ejemplo, si queremos obtener un conjunto con los cuadrados de los números pares del 0 al 9:

# Con bucle tradicional
pares_cuadrados = set()
for numero in range(10):
    if numero % 2 == 0:
        pares_cuadrados.add(numero ** 2)
        
print(pares_cuadrados)  # {0, 4, 16, 36, 64}

# Con set comprehension
pares_cuadrados = {numero ** 2 for numero in range(10) if numero % 2 == 0}
print(pares_cuadrados)  # {0, 4, 16, 36, 64}

Casos de uso prácticos

Eliminación de duplicados

Una de las aplicaciones más comunes de las set comprehensions es eliminar duplicados mientras se transforma la información:

# Obtener las primeras letras únicas de una lista de palabras
palabras = ["manzana", "banana", "mango", "melón", "mora", "naranja"]
primeras_letras = {palabra[0] for palabra in palabras}
print(primeras_letras)  # {'m', 'b', 'n'}

Filtrado de datos únicos

Podemos filtrar elementos basados en condiciones y asegurar que sean únicos:

# Obtener las vocales únicas en un texto
texto = "python es un lenguaje de programación versátil"
vocales = {letra for letra in texto.lower() if letra in "aeiou"}
print(vocales)  # {'a', 'e', 'i', 'o', 'u'}

Transformación de datos con eliminación de duplicados

Las set comprehensions son ideales cuando necesitamos transformar datos y eliminar duplicados en un solo paso:

# Obtener las longitudes únicas de palabras en una lista
palabras = ["casa", "perro", "sol", "luna", "mar", "montaña"]
longitudes_unicas = {len(palabra) for palabra in palabras}
print(longitudes_unicas)  # {3, 4, 5, 7}

Operaciones matemáticas sobre conjuntos

Podemos usar set comprehensions para realizar operaciones matemáticas sobre conjuntos:

# Crear un conjunto con los residuos de dividir números entre 5
residuos = {numero % 5 for numero in range(20)}
print(residuos)  # {0, 1, 2, 3, 4}

Combinación con operaciones de conjuntos

Las set comprehensions se pueden combinar con operaciones de conjuntos como unión, intersección y diferencia:

# Definimos dos conjuntos
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}

# Crear un conjunto con los elementos que están en A o B, multiplicados por 2
union_doble = {elemento * 2 for elemento in A.union(B)}
print(union_doble)  # {2, 4, 6, 8, 10, 12, 14, 16}

# Crear un conjunto con los elementos comunes a A y B, elevados al cuadrado
interseccion_cuadrado = {elemento ** 2 for elemento in A.intersection(B)}
print(interseccion_cuadrado)  # {16, 25}

Ejemplo de aplicación real

Veamos un ejemplo más completo donde las set comprehensions pueden ser muy útiles:

# Supongamos que tenemos datos de productos comprados por diferentes clientes
compras = [
    {"cliente": "Ana", "producto": "laptop"},
    {"cliente": "Juan", "producto": "teléfono"},
    {"cliente": "Ana", "producto": "auriculares"},
    {"cliente": "Pedro", "producto": "laptop"},
    {"cliente": "Juan", "producto": "auriculares"},
    {"cliente": "Ana", "producto": "teléfono"}
]

# Obtener el conjunto de productos únicos comprados
productos_unicos = {compra["producto"] for compra in compras}
print(productos_unicos)  # {'laptop', 'teléfono', 'auriculares'}

# Obtener el conjunto de clientes que compraron laptops
compradores_laptop = {compra["cliente"] for compra in compras if compra["producto"] == "laptop"}
print(compradores_laptop)  # {'Ana', 'Pedro'}

# Obtener las primeras letras de los nombres de clientes
iniciales_clientes = {cliente["cliente"][0] for cliente in compras}
print(iniciales_clientes)  # {'A', 'J', 'P'}

Rendimiento y consideraciones

Las set comprehensions, al igual que las otras comprehensions, suelen ser más eficientes que los bucles tradicionales para crear conjuntos. Sin embargo, hay algunas consideraciones importantes:

  • Orden: Recuerda que los conjuntos no mantienen un orden específico. Si el orden es importante, considera usar list comprehension y luego convertir a conjunto si es necesario.
# Si necesitas mantener el orden y eliminar duplicados
numeros = [5, 2, 3, 1, 4, 3]
numeros_unicos_ordenados = list(dict.fromkeys(numeros))  # Truco para mantener orden
print(numeros_unicos_ordenados)  # [5, 2, 3, 1, 4]
  • Hashabilidad: Los elementos de un conjunto deben ser hashables (inmutables). No puedes incluir listas o diccionarios en un conjunto.
# Esto causará un error
# conjunto_invalido = {[1, 2], [3, 4]}  # TypeError: unhashable type: 'list'

# Pero puedes usar tuplas (que son inmutables)
conjunto_valido = {(1, 2), (3, 4)}
print(conjunto_valido)  # {(1, 2), (3, 4)}
  • Eficiencia en búsquedas: Los conjuntos están optimizados para operaciones de pertenencia (verificar si un elemento está en el conjunto), lo que los hace ideales para eliminar duplicados y realizar búsquedas rápidas.
# Verificar pertenencia en un conjunto es más rápido que en una lista
numeros_grandes = range(10000)
conjunto_numeros = {n for n in numeros_grandes}

# Esto es muy eficiente
print(9999 in conjunto_numeros)  # True

Combinando diferentes tipos de comprehensions

A veces, es útil combinar diferentes tipos de comprehensions para resolver problemas más complejos:

# Crear un diccionario donde las claves son palabras únicas y los valores son sus longitudes
texto = "el perro corre tras el gato y el gato corre tras el ratón"
palabras = texto.split()
diccionario_longitudes = {palabra: len(palabra) for palabra in {p for p in palabras}}
print(diccionario_longitudes)
# {'perro': 5, 'el': 2, 'corre': 5, 'tras': 4, 'gato': 4, 'y': 1, 'ratón': 5}

Las set comprehensions son una herramienta poderosa en Python que te permite crear conjuntos de manera concisa y elegante. Son especialmente útiles cuando necesitas eliminar duplicados mientras transformas o filtras datos, aprovechando la naturaleza única de los conjuntos en Python.

CONSTRUYE TU CARRERA EN IA Y PROGRAMACIÓN SOFTWARE

Accede a +1000 lecciones y cursos con certificado. Mejora tu portfolio con certificados de superación para tu CV.

30 % DE DESCUENTO

Plan mensual

19.00 /mes

13.30 € /mes

Precio normal mensual: 19 €
63 % DE DESCUENTO

Plan anual

10.00 /mes

7.00 € /mes

Ahorras 144 € al año
Precio normal anual: 120 €
Aprende Python online

Ejercicios de esta lección Comprehensions

Evalúa tus conocimientos de esta lección Comprehensions con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.

Módulo math

Python
Puzzle

Reto herencia

Python
Código

Excepciones

Python
Test

Introducción a Python

Python
Test

Reto variables

Python
Código

Funciones Python

Python
Puzzle

Reto funciones

Python
Código

Módulo datetime

Python
Test

Reto acumulación

Python
Código

Reto estructuras condicionales

Python
Código

Polimorfismo

Python
Test

Módulo os

Python
Test

Reto métodos dunder

Python
Código

Diccionarios

Python
Puzzle

Reto clases y objetos

Python
Código

Reto operadores

Python
Código

Operadores

Python
Test

Estructuras de control

Python
Puzzle

Funciones lambda

Python
Test

Reto diccionarios

Python
Código

Reto función lambda

Python
Código

Encapsulación

Python
Puzzle

Reto coleciones

Python
Proyecto

Reto funciones auxiliares

Python
Código

Crear módulos y paquetes

Python
Puzzle

Módulo datetime

Python
Puzzle

Excepciones

Python
Puzzle

Operadores

Python
Puzzle

Diccionarios

Python
Test

Reto map, filter

Python
Código

Reto tuplas

Python
Código

Proyecto gestor de tareas CRUD

Python
Proyecto

Tuplas

Python
Puzzle

Variables

Python
Puzzle

Tipos de datos

Python
Puzzle

Conjuntos

Python
Test

Reto mixins

Python
Código

Módulo csv

Python
Test

Módulo json

Python
Test

Herencia

Python
Test

Análisis de datos de ventas con Pandas

Python
Proyecto

Reto fechas y tiempo

Python
Proyecto

Reto estructuras de iteración

Python
Código

Funciones

Python
Test

Reto comprehensions

Python
Código

Variables

Python
Test

Reto serialización

Python
Proyecto

Módulo csv

Python
Puzzle

Reto polimorfismo

Python
Código

Polimorfismo

Python
Puzzle

Clases y objetos

Python
Código

Reto encapsulación

Python
Código

Estructuras de control

Python
Test

Importar módulos y paquetes

Python
Test

Módulo math

Python
Test

Funciones lambda

Python
Puzzle

Reto excepciones

Python
Código

Listas

Python
Puzzle

Reto archivos

Python
Proyecto

Encapsulación

Python
Test

Reto conjuntos

Python
Código

Clases y objetos

Python
Test

Instalación de Python y creación de proyecto

Python
Test

Reto listas

Python
Código

Tipos de datos

Python
Test

Crear módulos y paquetes

Python
Test

Tuplas

Python
Test

Herencia

Python
Puzzle

Reto acceso a sistema

Python
Proyecto

Proyecto sintaxis calculadora

Python
Proyecto

Importar módulos y paquetes

Python
Puzzle

Clases y objetos

Python
Puzzle

Módulo os

Python
Puzzle

Listas

Python
Test

Conjuntos

Python
Puzzle

Reto tipos de datos

Python
Código

Reto matemáticas

Python
Proyecto

Módulo json

Python
Puzzle

Todas las lecciones de Python

Accede a todas las lecciones de Python y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.

Introducción A Python

Python

Introducción

Instalación Y Creación De Proyecto

Python

Introducción

Tema 2: Tipos De Datos, Variables Y Operadores

Python

Introducción

Instalación De Python

Python

Introducción

Tipos De Datos

Python

Sintaxis

Variables

Python

Sintaxis

Operadores

Python

Sintaxis

Estructuras De Control

Python

Sintaxis

Funciones

Python

Sintaxis

Estructuras Control Iterativo

Python

Sintaxis

Estructuras Control Condicional

Python

Sintaxis

Testing Con Pytest

Python

Sintaxis

Listas

Python

Estructuras De Datos

Tuplas

Python

Estructuras De Datos

Diccionarios

Python

Estructuras De Datos

Conjuntos

Python

Estructuras De Datos

Comprehensions

Python

Estructuras De Datos

Clases Y Objetos

Python

Programación Orientada A Objetos

Excepciones

Python

Programación Orientada A Objetos

Encapsulación

Python

Programación Orientada A Objetos

Herencia

Python

Programación Orientada A Objetos

Polimorfismo

Python

Programación Orientada A Objetos

Mixins Y Herencia Múltiple

Python

Programación Orientada A Objetos

Métodos Especiales (Dunder Methods)

Python

Programación Orientada A Objetos

Composición De Clases

Python

Programación Orientada A Objetos

Funciones Lambda

Python

Programación Funcional

Aplicación Parcial

Python

Programación Funcional

Entrada Y Salida, Manejo De Archivos

Python

Programación Funcional

Decoradores

Python

Programación Funcional

Generadores

Python

Programación Funcional

Paradigma Funcional

Python

Programación Funcional

Composición De Funciones

Python

Programación Funcional

Funciones Orden Superior Map Y Filter

Python

Programación Funcional

Funciones Auxiliares

Python

Programación Funcional

Reducción Y Acumulación

Python

Programación Funcional

Archivos Comprimidos

Python

Entrada Y Salida Io

Entrada Y Salida Avanzada

Python

Entrada Y Salida Io

Archivos Temporales

Python

Entrada Y Salida Io

Contexto With

Python

Entrada Y Salida Io

Módulo Csv

Python

Biblioteca Estándar

Módulo Json

Python

Biblioteca Estándar

Módulo Datetime

Python

Biblioteca Estándar

Módulo Math

Python

Biblioteca Estándar

Módulo Os

Python

Biblioteca Estándar

Módulo Re

Python

Biblioteca Estándar

Módulo Random

Python

Biblioteca Estándar

Módulo Time

Python

Biblioteca Estándar

Módulo Collections

Python

Biblioteca Estándar

Módulo Sys

Python

Biblioteca Estándar

Módulo Statistics

Python

Biblioteca Estándar

Módulo Pickle

Python

Biblioteca Estándar

Módulo Pathlib

Python

Biblioteca Estándar

Importar Módulos Y Paquetes

Python

Paquetes Y Módulos

Crear Módulos Y Paquetes

Python

Paquetes Y Módulos

Entornos Virtuales (Virtualenv, Venv)

Python

Entorno Y Dependencias

Gestión De Dependencias (Pip, Requirements.txt)

Python

Entorno Y Dependencias

Python-dotenv Y Variables De Entorno

Python

Entorno Y Dependencias

Acceso A Datos Con Mysql, Pymongo Y Pandas

Python

Acceso A Bases De Datos

Acceso A Mongodb Con Pymongo

Python

Acceso A Bases De Datos

Acceso A Mysql Con Mysql Connector

Python

Acceso A Bases De Datos

Novedades Python 3.13

Python

Características Modernas

Operador Walrus

Python

Características Modernas

Pattern Matching

Python

Características Modernas

Instalación Beautiful Soup

Python

Web Scraping

Sintaxis General De Beautiful Soup

Python

Web Scraping

Tipos De Selectores

Python

Web Scraping

Web Scraping De Html

Python

Web Scraping

Web Scraping Para Ciencia De Datos

Python

Web Scraping

Autenticación Y Acceso A Recursos Protegidos

Python

Web Scraping

Combinación De Selenium Con Beautiful Soup

Python

Web Scraping

Accede GRATIS a Python y certifícate

En esta lección

Objetivos de aprendizaje de esta lección

  • Comprender la sintaxis y uso de list comprehensions para crear y transformar listas.
  • Aprender a utilizar dict comprehensions para generar y filtrar diccionarios de manera concisa.
  • Conocer las set comprehensions para crear conjuntos únicos y filtrar datos.
  • Identificar casos prácticos y ventajas de las comprehensions frente a bucles tradicionales.
  • Evaluar consideraciones de rendimiento y legibilidad al usar comprehensions en Python.