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.
🐍 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.
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.
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.
{"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)
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.
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.
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.
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.
Usaget()cuando una clave podría no existir yincuando 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"]
pop()elimina y devuelve el valor;delelimina 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.
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.
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()
{} 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.
Comentarios y valoraciones
No hay comentarios aún. ¡Sé el primero en opinar!