10 métodos útiles de diccionario de Python

¿Estás buscando aprender a trabajar con diccionarios de Python? Este tutorial cubrirá los métodos de diccionario de Python para leer, modificar y realizar otras operaciones comunes en los diccionarios de Python.

Comenzaremos revisando los conceptos básicos de los diccionarios de Python y luego crearemos un diccionario de ejemplo y lo modificaremos usando métodos de diccionario de Python.

Empecemos…

Una descripción general de los diccionarios de Python

Los diccionarios son estructuras de datos integradas en Python. Le permite almacenar elementos en pares clave-valor, definiendo una asociación o asignación entre las claves y los valores.

Las claves de un diccionario deben ser únicas (para que se puedan modificar). Puede usar la clave para buscar el valor o usar métodos integrados (los aprenderá en breve).

Al crear un diccionario de Python, puede inicializar todos los pares clave-valor o inicializar un diccionario vacío y luego agregar los pares clave-valor.

>>> dict1 = {'language':'Python','like':True}
>>> type(dict1)
<class 'dict'>

# or we can do the following:

>>> dict1 = {}
>>> dict1['language']='Python'
>>> dict1['like']=True

Métodos de diccionario de Python para operaciones comunes

Nota: Para seguir los ejemplos de código, debe tener instalado Python 3.7 o una versión posterior.

Puede codificar en un REPL de Python. O síguelo en el editor de Python en línea de kirukiru.es.

>>> person = {'name':'Alice',
...           'city':'Portland',
...           'interest':'Programming',
...           'profession':'Developer'
...           }

Ahora que hemos inicializado un diccionario de Python, comencemos a repasar los diversos métodos de diccionario.

Obtener las claves del diccionario con claves()

Una de las operaciones comunes cuando se trabaja con un diccionario de Python es acceder a todas las claves, valores y pares clave-valor. Para obtener las claves de un diccionario, puede llamar al método keys() como se muestra:

>>> person.keys()
dict_keys(['name', 'city', 'interest', 'profession'])

Obtenga los valores del diccionario con valores ()

El método de valores () devuelve todos los valores y es útil cuando desea procesar estos valores más.

Accedamos a todos los valores del diccionario de personas:

>>> person.values()
dict_values(['Alice', 'Portland', 'Programming', 'Developer'])

Obtenga pares clave-valor con elementos ()

El método items() devuelve una lista de tuplas de valores-clave. Por lo tanto, llamar a este método en el diccionario de personas devuelve una lista de tuplas clave-valor:

>>> person.items()
dict_items([('name', 'Alice'), ('city', 'Portland'), ('interest', 'Programming'), 
           ('profession', 'Developer')])

Obtenga una copia superficial con copy()

El método copy() devuelve una copia superficial de un diccionario de Python.

>>> person_cpy = person.copy()

Aquí, person_cpy es una copia superficial del diccionario de personas. Modifiquemos esta copia actualizando la clave ‘nombre’ a ‘Bob’.

>>> person_cpy['name'] = 'Bob'
>>> person_cpy

Ahora, si examina el contenido del diccionario, puede ver que el ‘nombre’ se ha actualizado a ‘Bob’.

{
 'name': 'Bob', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer'
}

Sin embargo, el diccionario de personas original no ha sido modificado.

>>> person
{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer'
}

Establecer valores predeterminados con setdefault()

Cuando se trabaja con diccionarios de Python, es común encontrarse con la excepción KeyError si la clave no está presente en el diccionario. Aquí hay un ejemplo cuando intentamos acceder a la tecla ‘edad’:

>>> person['age']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'age'

Puede evitar este tipo de errores utilizando los métodos integrados setdefault() y get() en lugar de acceder al valor como se indicó anteriormente.

El método setdefault(key) devuelve dict[‘key’] si la clave está presente en el dict.

>>> person.setdefault('name')
'Alice'

Cuando la clave no está presente, agrega la clave al diccionario con el valor predeterminado de Ninguno.

>>> person.setdefault('address')
>>> person

Aquí, la clave de ‘dirección’ no está presente en el diccionario de personas. Pero vemos que se ha añadido con el valor por defecto de Ninguno.

{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': None 
}

Ahora podemos establecer la tecla ‘dirección’ en alguna dirección:

>>> person['address'] = "10, xyz street"
>>> person
{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': '10, xyz street' 
}

También puede especificar el valor en la llamada al método, como se muestra:

>>> person.setdefault('country','USA')
'USA'
>>> person

Como la clave ‘país’ no está originalmente presente en el diccionario de personas, vemos que se ha agregado con ‘EE. UU.’ como valor.

{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': '10, xyz street', 
 'country': 'USA'
}

Obtener un valor específico con get()

El método get() devuelve el valor correspondiente a la clave. También toma opcionalmente otro valor predeterminado que se devuelve si la clave no se encuentra en el diccionario.

Cuando intentamos acceder al valor de la clave ‘nombre’, obtenemos ‘Alice’ ya que la clave está presente en persona:

>>> person.get('name')
'Alice'

El diccionario de personas no tiene una clave ‘gpa’. Entonces, cuando tratamos de obtener su valor, no obtenemos nada en Python REPL. Sin embargo, si imprime el valor, obtendrá Ninguno.

>>> person.get('gpa')
>>> print(person.get('gpa'))
None

Pero si proporciona el valor predeterminado opcional, obtenemos ese valor en lugar de Ninguno.

>>> person.get('gpa','not found')
'not found'

Sin embargo, el método get() no agrega la clave ‘gpa’ al diccionario.

>>> person
{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': '10, xyz street', 
 'country': 'USA'
}

Comprender setdefault() frente a get()

Aunque los métodos setdefault() y get() se pueden usar para manejar KeyError, resumamos las diferencias de lo que hemos aprendido:

  • dict.setdefault(key,val) agrega la clave con val como valor predeterminado. Si no se proporciona val, la clave se agrega con el valor predeterminado Ninguno.
  • dict.get(key,val) devuelve el valor correspondiente a la clave del diccionario de Python. Si la clave no está presente, devuelve val (si se proporciona) o Ninguno, pero no agrega la clave al diccionario.

También puede usar defaultdict en Python para manejar mejor KeyErrors.

Actualizar los contenidos del diccionario con update()

Puede actualizar un diccionario de Python existente utilizando pares clave-valor de otro diccionario. También puede actualizar con contenidos de cualquier Python iterable usando el método update().

Definamos un diccionario more_details. Luego actualizamos el diccionario de personas con contenidos del diccionario more_details:

>>> more_details = {'hobby':'singing', 'likes':'sweets'}
>>> person.update(more_details)

En el resultado a continuación, vemos que las teclas ‘hobby’ y ‘me gusta’ se agregaron al diccionario de personas.

>>> person
{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': '10, xyz street', 
 'country': 'USA', 
 'hobby': 'singing', 
 'likes': 'sweets'
}

Eliminar el último elemento agregado con popitem()

El método de diccionario popitem() se puede usar para eliminar el último par clave-valor agregado.

>>> person.popitem()
('likes', 'sweets')

Como se ve, llamar al método popitem() en el diccionario de personas devuelve el par clave-valor (‘me gusta’, ‘dulces’), el último elemento agregado en el diccionario.

También elimina el par clave-valor. Puede confirmar esto examinando el contenido del diccionario:

>>> person
{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': '10, xyz street', 
 'country': 'USA', 
 'hobby': 'singing'
}

Eliminar un elemento del diccionario con pop()

Sabemos que el método de diccionario popitem() elimina y devuelve el último par clave-valor en un diccionario de Python. Sin embargo, a veces es posible que necesitemos eliminar otros elementos, además del último par clave-valor agregado.

Para hacer esto, podemos usar el método de diccionario de Python pop(): usar .pop(key) en el diccionario devuelve el valor correspondiente a la clave y también elimina el par clave-valor del diccionario.

Aquí hay un ejemplo:

>>> person.pop('hobby')
'singing'

Cuando abrimos el elemento correspondiente a la clave ‘hobby’, vemos que ya no está presente en el diccionario.

>>> person
{
 'name': 'Alice', 
 'city': 'Portland', 
 'interest': 'Programming', 
 'profession': 'Developer', 
 'address': '10, xyz street', 
 'country': 'USA'
}

Si pasamos una clave que no existe, nos encontramos con la excepción KeyError, como se muestra:

>>> person.pop('age')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'age'

Aquí, nos encontramos con una excepción KeyError ya que la clave ‘edad’ no está presente en el diccionario de personas.

A diferencia del método list pop() que elimina el último elemento de forma predeterminada, el método dictionary pop() requiere una clave. Si no especifica una clave en el método, nos encontraremos con errores.

>>> person.pop()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: pop expected at least 1 argument, got 0

Eliminar todos los elementos del diccionario con clear()

Los métodos pop() y popitem() del diccionario eliminan un par clave-valor a la vez. Si desea eliminar todos los elementos de un diccionario, puede utilizar el método clear().

>>> person.clear()
>>> person
{}

Como se ve, llamar al método clear() en el diccionario de personas elimina todos los pares clave-valor y el diccionario de personas ahora está vacío.

Resumen de los métodos del diccionario de Python

Aquí hay una revisión rápida de los métodos del diccionario de Python que hemos aprendido.

MethodSyntaxDescriptionkeys()dict1.keys()Devuelve las claves de dict1values()dict1.values()Devuelve los valores de dict1items()dict1.items()Devuelve una lista de todos los pares clave-valor en dict1copy()dict1.copy() Devuelve una copia superficial de dict1setdefault()dict1.setdefault(clave, valor_predeterminado): agrega la clave con el valor_predeterminado opcional como clave para dict1 (cuando no se especifica, el valor predeterminado es Ninguno)
– Devuelve dict1[key] si la clave ya está presenteget()dict1.get(key,default_value)– Devuelve dict1[key] si la clave está presente en dict1; De lo contrario, devuelve el valor_predeterminado
– Si key no está presente en dict1 y default_value no está especificado, devuelve Noneupdate()dict1.update(iterable1)Actualiza dict1 con pares clave-valor de iterable1popitem()dict1.popitem()Elimina y devuelve el último par clave-valor de dict1pop()dict1.pop(key)– Elimina y devuelve el valor correspondiente a la clave: dict1[key]
– Genera un KeyError si la clave no está presente en dict1clear()dict1.clear() Elimina todos los elementos de dict1

Conclusión

Aprendió a usar métodos comunes para realizar operaciones de lectura, actualización y eliminación en los diccionarios de Python. Además, también aprendió cómo se pueden usar los métodos get() y setdefault() para manejar las excepciones KeyError devolviendo un valor predeterminado y agregando una entrada con un valor predeterminado al diccionario de Python, respectivamente. También puede ordenar un diccionario de Python por clave o por valor.

A continuación, consulte la lista de métodos útiles de la lista de Python. ¡Feliz codificación!