Python

Diccionarios y conjuntos: datos con nombre y sin duplicados

Guía práctica para aprender a crear y modificar diccionarios en Python, acceder a valores mediante claves y utilizar conjuntos para trabajar con datos únicos.

Contenido de la guía

🐍 Python desde cero · Guía 8

En la guía anterior aprendiste a organizar información mediante listas y tuplas. Ahora descubrirás cómo los diccionarios y conjuntos en Python permiten identificar datos mediante nombres y trabajar con valores únicos sin repeticiones.

Ya aprendiste a encontrar datos por su posición. Ahora aprenderás a encontrarlos por su significado.
🗂️ Diccionarios 🔑 Claves 📦 Valores 🧩 Conjuntos ✨ Datos únicos 🔁 for
Ilustración de un diccionario con claves y valores junto a un conjunto de elementos únicos en Python.
Figura 1 — Los diccionarios identifican valores mediante claves y los conjuntos conservan elementos únicos.

De posiciones a nombres

En una lista, cada elemento se localiza mediante una posición. Por ejemplo, el índice 0 permite acceder al primer valor de la colección.

Sin embargo, una posición no explica qué representa el dato. Al observar un valor aislado, puede resultar difícil saber si corresponde a un nombre, una edad, una ciudad o cualquier otra información.

Algunos datos se entienden mejor cuando se identifican mediante un nombre descriptivo. Ese nombre se conoce como clave y permite localizar un valor según su significado, en lugar de depender de su posición.

También existen problemas donde no importa la posición de los elementos, sino conservar valores únicos y evitar repeticiones. Más adelante aprenderás qué estructura permite resolver esta necesidad.

Una posición indica dónde está un dato. Una clave explica qué representa.

¿Qué es un diccionario?

Un diccionario es una estructura que permite guardar varios datos relacionados dentro de una sola variable. Cada dato se organiza mediante un nombre descriptivo y el valor asociado a ese nombre.

El nombre que identifica el dato se llama clave, mientras que la información relacionada con esa clave se llama valor. Ambos forman un par de clave y valor.

Llaves

Los símbolos { } indican dónde empieza y termina el diccionario.

Dos puntos

Los dos puntos separan cada clave del valor que le corresponde.

Comas

Cada par de clave y valor se separa del siguiente mediante una coma.

"nombre" : "Laura"
"edad" : 24

Las claves no deben repetirse dentro del mismo diccionario, porque cada una identifica un dato concreto. Los valores, en cambio, pueden modificarse después de crear la estructura.

Ejemplo conceptual: {"nombre": "Laura", "edad": 24}
Un diccionario organiza información mediante pares de clave y valor.
persona = {
    "nombre": "Laura",
    "edad": 24,
    "ciudad": "Medellín"
}

print(persona)
Diagrama de un diccionario de Python dividido en claves y valores.
Figura 2 — Cada elemento de un diccionario relaciona una clave descriptiva con un valor.

Acceder a valores mediante claves

En un diccionario, los datos no se consultan mediante posiciones numéricas. Para obtener un valor, se escribe el nombre del diccionario y después la clave entre corchetes.

persona["nombre"] "Laura"
persona["edad"] 24

Cada clave permite recuperar el valor completo que tiene asociado. En estos ejemplos, "nombre" identifica el valor "Laura" y "edad" identifica el valor 24.

Lista

lista[0] busca un dato mediante su posición.

Diccionario

persona["nombre"] busca un dato mediante su significado.

La clave escrita entre corchetes debe existir dentro del diccionario. Más adelante aprenderás una forma segura de consultar claves que podrían no estar presentes.
En un diccionario no preguntas “¿qué hay en la posición 0?”, sino “¿cuál es el nombre?”.
persona = {
    "nombre": "Laura",
    "edad": 24,
    "ciudad": "Medellín"
}

print(persona["nombre"])
print(persona["ciudad"])

Modificar y añadir información

Un diccionario puede actualizarse después de su creación. La clave funciona como un identificador que permite decidir qué dato debe cambiarse o dónde debe guardarse información nueva.

Cuando la clave ya existe, asignarle otro valor reemplaza la información anterior. El resto de los pares del diccionario permanece sin cambios.

Cuando la clave todavía no existe, la asignación añade un nuevo par de clave y valor. De esta forma, el diccionario continúa agrupando datos relacionados dentro de una sola variable.

Clave existente

Reemplaza el valor que ya estaba asociado con esa clave.

producto["precio"] = 110000

Clave nueva

Añade un nuevo dato al diccionario mediante otro par.

producto["disponible"] = True

La misma sintaxis permite actualizar información existente o guardar información nueva.
producto = {
    "nombre": "Teclado",
    "precio": 120000
}

producto["precio"] = 110000
producto["disponible"] = True

print(producto)

Consultar con get() y in

Cuando utilizas corchetes para consultar un diccionario, la clave debe existir. Si no sabes con certeza si está presente, puedes utilizar get() para realizar una consulta más segura.

El método get() busca una clave y devuelve el valor asociado. También permite indicar un valor alternativo para utilizarlo cuando la clave no existe.

get()

Consulta una clave sin depender de que esté presente y puede devolver un valor alternativo.

in

Comprueba si una clave existe dentro del diccionario antes de utilizarla.

perfil.get("nombre") valor asociado
perfil.get("ciudad", "No registrada") valor alternativo

El operador in permite comprobar si una clave está presente. Por defecto, esta comprobación se realiza sobre las claves del diccionario, no sobre sus valores.

"lenguaje" in perfil comprueba si "lenguaje" existe como clave.
Usa get() cuando una clave podría no existir y in cuando necesites comprobar su presencia.
perfil = {
    "nombre": "Ana",
    "lenguaje": "Python"
}

print(perfil.get("nombre"))
print(perfil.get("ciudad", "No registrada"))
print("lenguaje" in perfil)

Eliminar pares de un diccionario

Cuando un dato deja de ser necesario, puedes eliminar su par completo mediante la clave que lo identifica. El resto de la información del diccionario continúa disponible.

El método pop() elimina el par correspondiente y devuelve el valor que estaba asociado con la clave. Esto permite conservar ese valor en una variable antes de retirarlo del diccionario.

La instrucción del elimina directamente el par indicado. En ambos casos, la clave utilizada debe existir dentro del diccionario.

pop()

Elimina mediante una clave y devuelve el valor retirado.

inventario.pop("borradores")

del

Elimina directamente el par identificado por la clave.

del inventario["lapices"]

Antes de eliminar información, comprueba que la clave exista para evitar intentar retirar un dato que no está presente.
pop() elimina y devuelve el valor; del elimina el par directamente.
inventario = {
    "cuadernos": 12,
    "lapices": 30,
    "borradores": 8
}

cantidad_eliminada = inventario.pop("borradores")
del inventario["lapices"]

print(inventario)
print(cantidad_eliminada)

Claves, valores y pares

Un diccionario puede observarse desde tres perspectivas: los nombres que identifican los datos, los valores almacenados y las relaciones completas entre cada clave y su valor.

keys()

Obtiene una vista con todas las claves del diccionario.

values()

Obtiene una vista con todos los valores almacenados.

items()

Obtiene cada clave junto con el valor que tiene asociado.

keys() claves
values() valores
items() pares de clave y valor

Estos métodos permiten consultar distintas partes del contenido sin modificar el diccionario. Más adelante, items() será especialmente útil para recorrer cada clave y su valor mediante un bucle for.

Puedes observar los nombres, los datos o ambas partes al mismo tiempo.
curso = {
    "nombre": "Python básico",
    "duracion": "4 semanas",
    "modalidad": "virtual"
}

print(curso.keys())
print(curso.values())
print(curso.items())

Recorrer un diccionario con for

Un bucle for permite recorrer el contenido de un diccionario. Cuando se utiliza directamente, obtiene una clave diferente en cada repetición.

Para trabajar al mismo tiempo con las claves y sus valores, se utiliza items(). Este método entrega cada par y permite guardarlo temporalmente en dos variables.

pais clave actual
capital valor actual

En cada repetición, la primera variable representa la clave y la segunda representa el valor asociado. Después puedes utilizar una f-string para mostrar ambas partes de manera clara.

for pais, capital in capitales.items(): recorre un par completo en cada repetición.
items() permite trabajar con el nombre del dato y con su contenido en cada repetición.
capitales = {
    "Colombia": "Bogotá",
    "Perú": "Lima",
    "Argentina": "Buenos Aires"
}

for pais, capital in capitales.items():
    print(f"{pais}: {capital}")

¿Qué es un conjunto?

Un conjunto es una colección que guarda elementos únicos. Cuando un valor aparece varias veces, el conjunto conserva una sola aparición.

A diferencia de una lista, un conjunto no organiza sus elementos mediante posiciones. Por esta razón, no admite índices ni permite obtener partes de su contenido mediante slicing.

Conjunto con elementos

Puede escribirse entre llaves cuando contiene valores.

{"Python", "JavaScript", "Rust"}

Conjunto vacío

Debe crearse mediante set().

conjunto_vacio = set()

Las llaves vacías {} crean un diccionario vacío, no un conjunto. Para crear un conjunto sin elementos debes utilizar set().

Los conjuntos se consideran colecciones sin un orden fijo. Se utilizan para comprobar qué valores están presentes, evitar duplicados y comparar grupos de elementos.

Un conjunto responde qué valores están presentes, no en qué posición se encuentran.

Estás viendo solo el 60% del contenido. Hazte Premium para acceder a la guía completa.

Comunidad

Comentarios y valoraciones

No hay comentarios aún. ¡Sé el primero en opinar!