Guía de diccionarios en Python

Python viene con una variedad de estructuras de datos integradas, capaces de almacenar diferentes tipos de datos. Un diccionario de Python es una de esas estructuras de datos que puede...

Introducción

Python viene con una variedad de estructuras de datos integradas, capaces de almacenar diferentes tipos de datos. Un diccionario de Python es una de esas estructuras de datos que puede almacenar datos en forma de pares clave-valor, conceptualmente similar a un mapa. Se puede acceder a los valores en un diccionario de Python usando las teclas.

En esta guía, discutiremos los diccionarios de Python en detalle. En primer lugar, cubriremos las operaciones básicas del diccionario (crear un diccionario, actualizarlo, eliminar y agregar elementos, etc.) y luego veremos un par de métodos más interesantes.

Cómo crear un diccionario en Python

Para crear un diccionario de Python, pasamos una secuencia de elementos (entradas) entre llaves {} y los separamos con una coma (,). Cada entrada consta de una clave y un valor, también conocido como par clave-valor.

{.icon aria-hidden=“true”}

Nota: Los valores pueden pertenecer a cualquier tipo de datos y pueden repetirse, pero las claves deben permanecer únicas. Además, no puede asignar varios valores a la misma clave, aunque puede asignar una lista de valores (como un solo valor).

Los siguientes ejemplos demuestran cómo crear diccionarios de Python.

Creando un diccionario vacío:

1
example_dict = {}

Creando un diccionario con claves enteras:

1
example_dict = {1: 'mango', 2: 'pawpaw'}

Creando un diccionario con claves mixtas:

1
example_dict = {'fruit': 'mango', 1: [4, 6, 8]}

Alternativamente, podemos crear un diccionario llamando explícitamente al método dict() de Python:

1
example_dict = dict({1:'mango', 2:'pawpaw'})

También se puede crear un diccionario a partir de una secuencia como se muestra a continuación:

1
example_dict = dict([(1,'mango'), (2,'pawpaw')])

Los diccionarios también se pueden anidar, lo que significa que podemos crear un diccionario dentro de otro diccionario. Por ejemplo:

1
2
example_dict = {1: {'student1' : 'Nicholas', 'student2' : 'John', 'student3' : 'Mercy'},
        2: {'course1' : 'Computer Science', 'course2' : 'Mathematics', 'course3' : 'Accounting'}}

Para imprimir el contenido del diccionario, podemos usar el método print() de Python y pasar el nombre del diccionario como argumento al método:

1
2
3
4
5
6
7
example_dict = {
  "Company": "Toyota",
  "model": "Premio",
  "year": 2012
}

print(example_dict)

Esto resulta en:

1
{'Company': 'Toyota', 'model': 'Premio', 'year': 2012}

Cómo acceder a los elementos de un diccionario de Python

Para acceder a los elementos del diccionario, pasamos la clave, usando la notación de corchetes:

1
2
3
4
5
6
7
8
9
example_dict = {
  "Company": "Toyota",
  "model": "Premio",
  "year": 2012
}

x = example_dict["model"]

print(x)

Esto nos da el valor asociado con la clave "modelo":

1
Premio

Puede almacenar elementos de "configuración" o constantes comunes en un diccionario para facilitar el acceso centralizado:

1
2
3
4
5
example_dict = {'Name': 'Mercy', 'Age': 23, 'Course': 'Accounting'}

print("Student Name:", example_dict['Name'])
print("Course:", example_dict['Course'])
print("Age:", example_dict['Age'])

Esto daría como resultado:

1
2
3
Student Name: Mercy
Course: Accounting
Age: 23

El objeto del diccionario también proporciona el método get(), que también se puede usar para acceder a los elementos del diccionario. Agregamos el método con el nombre del diccionario usando el operador punto y luego pasamos el nombre de la clave como argumento al método:

1
2
3
4
5
6
7
8
9
example_dict = {
  "Company": "Toyota",
  "model": "Premio",
  "year": 2012
}

x = example_dict.get("model")

print(x)

Esto resulta en:

1
Premio

¡Ahora sabemos cómo acceder a los elementos del diccionario! En la siguiente sección, discutiremos cómo agregar nuevos elementos a un diccionario ya existente.

Cómo agregar elementos a un diccionario Python

Existen numerosas formas de agregar nuevos elementos a un diccionario. Una forma común es agregar una nueva clave y asignarle un valor:

1
2
3
4
5
6
7
8
9
example_dict = {
  "Company": "Toyota",
  "model": "Premio",
  "year": 2012
}

example_dict["Capacity"] = "1800CC"

print(example_dict)

Cuando una clave no existe y le asignamos un valor, se agrega al diccionario:

1
{'Capacity': '1800CC', 'year': 2012, 'Company': 'Toyota', 'model': 'Premio'}

El nuevo elemento tiene Capacidad como clave y 1800CC como su valor correspondiente. Se ha añadido como primer elemento del diccionario. Aquí hay otro ejemplo. Primero, primero creemos un diccionario vacío:

1
2
3
4
example_dict = {}

print("An Empty Dictionary: ")
print(example_dict)

Verifiquemos que esté vacío:

1
An Empty Dictionary:

El diccionario no devuelve nada ya que aún no tiene nada almacenado. Agreguemos algunos elementos, uno a la vez:

1
2
3
4
5
6
example_dict[0] = 'Apples'
example_dict[2] = 'Mangoes'
example_dict[3] = 20

print("\n3 elements have been added: ")
print(example_dict)

Esto resulta en:

1
2
3 elements have been added:
{0: 'Apples', 2: 'Mangoes', 3: 20}

Para agregar los elementos, especificamos claves así como los valores correspondientes:

1
example_dict[0] = 'Apples'

En el ejemplo anterior, 0 es la clave, mientras que Apples es el valor. Incluso es posible que agreguemos un conjunto de valores a una clave siempre que ese conjunto sea referenciable como un solo valor, como una colección:

1
2
3
4
5
# These three values are implicitly converted into a set
example_dict['Values'] = 1, "Pairs", 4

print("\n3 elements have been added: ")
print(example_dict)

Y tenemos una clave con un conjunto como su valor:

1
2
3 elements have been added:
{'Values': (1, 'Pairs', 4)}

Además de agregar nuevos elementos a un diccionario, los elementos del diccionario también se pueden actualizar/cambiar, lo cual veremos en la siguiente sección.

Cómo actualizar los elementos del diccionario

Después de agregar un valor a un diccionario, podemos modificar el elemento del diccionario existente. Usas la clave del elemento para cambiar el valor correspondiente:

1
2
3
4
5
6
7
8
9
example_dict = {
  "Company": "Toyota",
  "model": "Premio",
  "year": 2012
}

example_dict["year"] = 2014

print(example_dict)

En este ejemplo, hemos actualizado el valor de la clave año del valor anterior de 2012 a un nuevo valor de 2014:

1
{'year': 2014, 'model': 'Premio', 'Company': 'Toyota'}

Cómo quitar elementos del diccionario

La eliminación de un elemento de un diccionario se puede hacer de varias maneras, las cuales discutiremos una por una en esta sección.

La palabra clave del se puede usar para eliminar el elemento con la clave especificada:

1
2
3
4
5
6
7
8
9
example_dict = {
  "Company": "Toyota",
  "model": "Premio",
  "year": 2012
}

del example_dict["year"]

print(example_dict)

Esto resulta en:

1
{'Company': 'Toyota', 'model': 'Premio'}

Llamamos a la palabra clave del seguida del nombre del diccionario. Dentro de los corchetes que siguen al nombre del diccionario, pasamos la clave del elemento que necesitamos eliminar del diccionario, que en este ejemplo era año. Luego se eliminó la entrada para año en el diccionario.

Otra forma de eliminar un par clave-valor es utilizar el método pop() y pasar la clave de la entrada que se eliminará como argumento al método:

1
2
3
4
5
6
7
8
9
example_dict = {
  "Company": "Toyota",
  "model": "Premio",
  "year": 2012
}

example_dict.pop("year")

print(example_dict)

Invocamos el método pop() agregándole el nombre del diccionario. Ejecutar este código eliminará la entrada de año en el diccionario:

1
{'Company': 'Toyota', 'model': 'Premio'}

El método popitem() elimina el último elemento insertado en el diccionario, sin necesidad de especificar la clave. Echa un vistazo al siguiente ejemplo:

1
2
3
4
5
6
7
8
9
example_dict = {
  "Company": "Toyota",
  "model": "Premio",
  "year": 2012
}

example_dict.popitem()

print(example_dict)

La última entrada en el diccionario fue año. Se eliminó después de llamar al método popitem():

1
{'Company': 'Toyota', 'model': 'Premio'}

Pero, ¿qué pasa si quieres eliminar todo el diccionario? Sería difícil y engorroso usar uno de estos métodos en cada tecla. En su lugar, puede usar la palabra clave del para eliminar todo el diccionario:

1
2
3
4
5
6
7
8
9
example_dict = {
  "Company": "Toyota",
  "model": "Premio",
  "year": 2012
}

del example_dict

print(example_dict)

Pero, este código devolverá un error. La razón es que estamos tratando de acceder a un diccionario que no existe ya que ha sido borrado de antemano:

1
NameError: name 'example_dict' is not defined

Según el caso de uso, es posible que deba eliminar todos los elementos del diccionario, pero no el diccionario en sí. Esto se puede lograr llamando al método clear() en el diccionario:

1
2
3
4
5
6
7
8
9
example_dict = {
  "Company": "Toyota",
  "model": "Premio",
  "year": 2012
}

example_dict.clear()

print(example_dict)

Esto le dará un diccionario vacío (ya que se han eliminado todos los elementos del diccionario):

1
{}

Otros métodos de diccionario comunes en Python

Además de los métodos que hemos cubierto hasta ahora, Python nos brinda muchos otros métodos interesantes que nos ayudan a realizar operaciones distintas a las básicas descritas anteriormente. En las siguientes subsecciones, veremos algunos otros métodos que puede usar junto con los diccionarios en Python.

Método len()

Con este método, puede contar la cantidad de elementos en un diccionario. Por ejemplo:

1
2
3
4
5
6
7
example_dict = {
  "Company": "Toyota",
  "model": "Premio",
  "year": 2012
}

print(len(example_dict))

Hay tres entradas en el diccionario, por lo que el método devolverá 3:

1
3

copiar() Método

Este método devuelve una copia del diccionario existente. Por ejemplo:

1
2
3
4
5
6
7
8
example_dict = {
  "Company": "Toyota",
  "model": "Premio",
  "year": 2012
}
x = example_dict.copy()

print(x)

Asegurémonos de que la copia esté correctamente hecha y asignada a la variable x:

1
{'Company': 'Toyota', 'year': 2012, 'model': 'Premio'}

Después de imprimir x en la consola, verá que contiene los mismos elementos que los almacenados en el diccionario example_dict.

{.icon aria-hidden=“true”}

Nota: Esto es útil porque las modificaciones realizadas en el diccionario copiado no afectarán al original.

elementos() Método

Cuando se llama, este método devuelve un objeto iterable. El objeto iterable tiene pares clave-valor para el diccionario, como tuplas en una lista. Este método se usa principalmente cuando desea iterar a través de un diccionario.

El método simplemente se llama en el nombre del objeto del diccionario como se muestra a continuación:

1
2
3
4
5
6
7
8
example_dict = {
  "Company": "Toyota",
  "model": "Premio",
  "year": 2012
}

for k, v in example_dict.items():
  print(k, v)

Esto dará como resultado:

1
2
3
('Company', 'Toyota')
('model', 'Premio')
('year', 2012)

El objeto devuelto por items() también se puede usar para mostrar los cambios que se han implementado en el diccionario:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
example_dict = {
  "Company": "Toyota",
  "model": "Premio",
  "year": 2012
}

x = example_dict.items()

print(x)

example_dict["model"] = "Mark X"

print(x)

Este código ilustra que cuando cambias un valor en el diccionario, el objeto items también se actualiza para reflejar este cambio:

1
2
dict_items([('Company', 'Toyota'), ('model', 'Premio'), ('year', 2012)])
dict_items([('Company', 'Toyota'), ('model', 'Mark X'), ('year', 2012)])

Método fromkeys()

Este método devuelve un diccionario con claves y valores especificados. Toma la sintaxis dada a continuación:

1
dictionary.fromkeys(keys, value)

El valor para el parámetro keys requerido es iterable y especifica las claves para el nuevo diccionario. El valor del parámetro value es opcional y especifica el valor predeterminado para todas las claves. El valor predeterminado para esto es Ninguno.

Supongamos que necesitamos crear un diccionario de tres claves, todas con el mismo valor, digamos 25:

1
2
3
4
5
6
name = ('John', 'Nicholas', 'Mercy')
age = 25

example_dict = dict.fromkeys(name, age)

print(example_dict)

Verifiquemos que el método fromkeys() creó el diccionario que hemos descrito:

1
{'John': 25, 'Mercy': 25, 'Nicholas': 25}

Como era de esperar, el método fromkeys() pudo seleccionar las claves y combinarlas con el valor 25 para crear el diccionario que queríamos.

El valor del parámetro keys es obligatorio. El siguiente ejemplo demuestra lo que sucede cuando no se especifica el valor del parámetro values:

1
2
3
4
5
name = ('John', 'Nicholas', 'Mercy')

example_dict = dict.fromkeys(name)

print(example_dict)

En este caso, Ninguno se utilizó como valor predeterminado:

1
{'John': None, 'Mercy': None, 'Nicholas': None}

setdefault() Método

Este método es aplicable cuando necesitamos obtener el valor del elemento con la clave especificada. Si no se encuentra la clave, se insertará en el diccionario junto con el valor predeterminado especificado.

El método toma la siguiente sintaxis:

1
dictionary.setdefault(keyname, value)

En este método, se requiere el parámetro keyname. Representa el nombre clave del elemento del que necesita devolver un valor. El parámetro valor es opcional. Si el diccionario ya tiene la clave, este parámetro no tendrá ningún efecto. Si la clave no existe, el valor dado en este método se convertirá en el valor de la clave. Tiene un valor predeterminado de Ninguno:

1
2
3
4
5
6
7
8
9
example_dict = {
  "Company": "Toyota",
  "model": "Premio",
  "year": 2012
}

x = example_dict.setdefault("color", "Gray")

print(x)

El diccionario no tiene la clave para color. El método setdefault() ha insertado esta clave y el valor especificado, es decir, Gray, se ha utilizado como su valor:

1
Gray

El siguiente ejemplo demuestra cómo se comporta el método si el valor de la clave existe:

1
2
3
4
5
6
7
8
9
example_dict = {
  "Company": "Toyota",
  "model": "Premio",
  "year": 2012
}

x = example_dict.setdefault("model", "Allion")

print(x)

El valor Allion no tiene efecto en el diccionario ya que ya tenemos un valor para la clave modelo:

1
Premio

keys() Método

Este método también devuelve un objeto iterable. El objeto devuelto es una lista de todas las claves del diccionario. Y al igual que con el método items(), el objeto devuelto se puede usar para reflejar los cambios realizados en el diccionario.

Para usar este método, solo lo llamamos en el nombre del diccionario, como se muestra a continuación:

1
dictionary.keys()

Por ejemplo:

1
2
3
4
5
6
7
8
9
example_dict = {
  "Company": "Toyota",
  "model": "Premio",
  "year": 2012
}

x = example_dict.keys()

print(x)

Esto resulta en:

1
dict_keys(['model', 'Company', 'year'])

A menudo, este método se usa para iterar a través de cada clave en su diccionario:

1
2
3
4
5
6
7
8
example_dict = {
  "Company": "Toyota",
  "model": "Premio",
  "year": 2012
}

for k in example_dict.keys():
  print(k)

Esto imprimirá cada clave de example_dict en una línea separada:

1
2
3
Company
model
year

Conclusión

Esto marca el final de esta guía sobre los diccionarios de Python. Estos diccionarios almacenan datos en pares clave-valor. La clave actúa como el identificador del elemento, mientras que el valor es el valor del elemento. El diccionario de Python viene con una variedad de métodos que se pueden aplicar para la recuperación o manipulación de datos. En este artículo, vimos cómo se puede crear, modificar y eliminar un diccionario de Python junto con algunos de los métodos de diccionario más utilizados.

Licensed under CC BY-NC-SA 4.0