En este tutorial, aprenderá todo sobre los diccionarios de Python; cómo se crean, acceden, agregan, eliminan elementos de ellos y varios métodos incorporados.
Vídeo: diccionarios de Python para almacenar pares clave / valor
El diccionario de Python es una colección desordenada de elementos. Cada elemento de un diccionario tiene un key/value
par.
Los diccionarios están optimizados para recuperar valores cuando se conoce la clave.
Creando Diccionario Python
Crear un diccionario es tan simple como colocar elementos entre llaves ()
separadas por comas.
Un elemento tiene un key
y un correspondiente value
que se expresa como un par ( clave: valor ).
Si bien los valores pueden ser de cualquier tipo de datos y pueden repetirse, las claves deben ser de tipo inmutable (cadena, número o tupla con elementos inmutables) y deben ser únicas.
# empty dictionary my_dict = () # dictionary with integer keys my_dict = (1: 'apple', 2: 'ball') # dictionary with mixed keys my_dict = ('name': 'John', 1: (2, 4, 3)) # using dict() my_dict = dict((1:'apple', 2:'ball')) # from sequence having each item as a pair my_dict = dict(((1,'apple'), (2,'ball')))
Como puede ver desde arriba, también podemos crear un diccionario usando la dict()
función incorporada.
Acceder a elementos desde el diccionario
Mientras que la indexación se usa con otros tipos de datos para acceder a los valores, un diccionario usa keys
. Las claves se pueden utilizar entre corchetes ()
o con el get()
método.
Si usamos los corchetes ()
, KeyError
se eleva en caso de que no se encuentre una clave en el diccionario. Por otro lado, el get()
método regresa None
si no se encuentra la clave.
# get vs () for retrieving elements my_dict = ('name': 'Jack', 'age': 26) # Output: Jack print(my_dict('name')) # Output: 26 print(my_dict.get('age')) # Trying to access keys which doesn't exist throws error # Output None print(my_dict.get('address')) # KeyError print(my_dict('address'))
Salida
Jack 26 Ninguno Traceback (última llamada más reciente): Archivo "", línea 15, en letra impresa (my_dict ('dirección')) KeyError: 'dirección'
Cambiar y agregar elementos del diccionario
Los diccionarios son mutables. Podemos agregar nuevos elementos o cambiar el valor de los elementos existentes utilizando un operador de asignación.
Si la clave ya está presente, el valor existente se actualiza. En caso de que la clave no esté presente, se agrega un nuevo par ( clave: valor ) al diccionario.
# Changing and adding Dictionary Elements my_dict = ('name': 'Jack', 'age': 26) # update value my_dict('age') = 27 #Output: ('age': 27, 'name': 'Jack') print(my_dict) # add item my_dict('address') = 'Downtown' # Output: ('address': 'Downtown', 'age': 27, 'name': 'Jack') print(my_dict)
Salida
('nombre': 'Jack', 'edad': 27) ('nombre': 'Jack', 'edad': 27, 'dirección': 'Centro')
Eliminar elementos del diccionario
Podemos eliminar un elemento en particular en un diccionario usando el pop()
método. Este método elimina un elemento con el proporcionado key
y devuelve el value
.
El popitem()
método se puede utilizar para eliminar y devolver un (key, value)
par de elementos arbitrarios del diccionario. Todos los elementos se pueden eliminar a la vez, utilizando el clear()
método.
También podemos usar la del
palabra clave para eliminar elementos individuales o todo el diccionario.
# Removing elements from a dictionary # create a dictionary squares = (1: 1, 2: 4, 3: 9, 4: 16, 5: 25) # remove a particular item, returns its value # Output: 16 print(squares.pop(4)) # Output: (1: 1, 2: 4, 3: 9, 5: 25) print(squares) # remove an arbitrary item, return (key,value) # Output: (5, 25) print(squares.popitem()) # Output: (1: 1, 2: 4, 3: 9) print(squares) # remove all items squares.clear() # Output: () print(squares) # delete the dictionary itself del squares # Throws Error print(squares)
Salida
16 (1: 1, 2: 4, 3: 9, 5: 25) (5, 25) (1: 1, 2: 4, 3: 9) () Rastreo (última llamada más reciente): Archivo "", línea 30, en letra de imprenta (cuadrados) NameError: el nombre 'cuadrados' no está definido
Métodos del diccionario de Python
Los métodos que están disponibles con un diccionario se tabulan a continuación. Algunos de ellos ya se han utilizado en los ejemplos anteriores.
Método | Descripción |
---|---|
claro() | Elimina todos los elementos del diccionario. |
Copiar() | Devuelve una copia superficial del diccionario. |
fromkeys (seq (, v)) | Devuelve un nuevo diccionario con claves de seq y un valor igual av (predeterminado en None ). |
obtener (clave (, d)) | Devuelve el valor de la clave. Si la clave no existe, devuelve d (predeterminado en None ). |
artículos() | Devuelve un nuevo objeto de los elementos del diccionario en formato (clave, valor). |
llaves() | Devuelve un nuevo objeto de las claves del diccionario. |
pop (tecla (, d)) | Elimina el elemento con la clave y devuelve su valor od si no se encuentra la clave. Si no se proporciona d y no se encuentra la clave, aumenta KeyError . |
popitem () | Elimina y devuelve un elemento arbitrario ( clave, valor ). Aumenta KeyError si el diccionario está vacío. |
setdefault (tecla (, d)) | Devuelve el valor correspondiente si la clave está en el diccionario. De lo contrario, inserta la clave con un valor de d y devuelve d (por defecto None ). |
actualizar ((otro)) | Actualiza el diccionario con los pares clave / valor de otros, sobrescribiendo las claves existentes. |
valores() | Devuelve un nuevo objeto de los valores del diccionario. |
A continuación, se muestran algunos ejemplos de casos de uso de estos métodos.
# Dictionary Methods marks = ().fromkeys(('Math', 'English', 'Science'), 0) # Output: ('English': 0, 'Math': 0, 'Science': 0) print(marks) for item in marks.items(): print(item) # Output: ('English', 'Math', 'Science') print(list(sorted(marks.keys())))
Salida
('Matemáticas': 0, 'Inglés': 0, 'Ciencias': 0) ('Matemáticas', 0) ('Inglés', 0) ('Ciencias', 0) ('Inglés', 'Matemáticas', ' Ciencias')
Comprensión del diccionario de Python
La comprensión de diccionario es una forma elegante y concisa de crear un nuevo diccionario a partir de un iterable en Python.
La comprensión del diccionario consta de un par de expresiones ( clave: valor ) seguido de una for
declaración entre llaves ()
.
Aquí hay un ejemplo para hacer un diccionario en el que cada elemento sea un par de un número y su cuadrado.
# Dictionary Comprehension squares = (x: x*x for x in range(6)) print(squares)
Salida
(0: 0, 1: 1, 2: 4, 3: 9, 4:16, 5:25)
Este código es equivalente a
squares = () for x in range(6): squares(x) = x*x print(squares)
Salida
(0: 0, 1: 1, 2: 4, 3: 9, 4:16, 5:25)
A dictionary comprehension can optionally contain more for or if statements.
An optional if
statement can filter out items to form the new dictionary.
Here are some examples to make a dictionary with only odd items.
# Dictionary Comprehension with if conditional odd_squares = (x: x*x for x in range(11) if x % 2 == 1) print(odd_squares)
Output
(1: 1, 3: 9, 5: 25, 7: 49, 9: 81)
To learn more dictionary comprehensions, visit Python Dictionary Comprehension.
Other Dictionary Operations
Dictionary Membership Test
We can test if a key
is in a dictionary or not using the keyword in
. Notice that the membership test is only for the keys
and not for the values
.
# Membership Test for Dictionary Keys squares = (1: 1, 3: 9, 5: 25, 7: 49, 9: 81) # Output: True print(1 in squares) # Output: True print(2 not in squares) # membership tests for key only not value # Output: False print(49 in squares)
Output
True True False
Iterating Through a Dictionary
We can iterate through each key in a dictionary using a for
loop.
# Iterating through a Dictionary squares = (1: 1, 3: 9, 5: 25, 7: 49, 9: 81) for i in squares: print(squares(i))
Output
1 9 25 49 81
Dictionary Built-in Functions
Las funciones integradas como all()
, any()
, len()
, cmp()
, sorted()
, etc., se utilizan comúnmente con diccionarios para realizar diferentes tareas.
Función | Descripción |
---|---|
todos() | Devuelve True si todas las claves del diccionario son verdaderas (o si el diccionario está vacío). |
ninguna() | Devuelve True si alguna clave del diccionario es verdadera. Si el diccionario está vacío, regrese False . |
len () | Devuelve la longitud (el número de elementos) en el diccionario. |
cmp () | Compara elementos de dos diccionarios. (No disponible en Python 3) |
ordenado () | Devuelve una nueva lista ordenada de claves en el diccionario. |
A continuación se muestran algunos ejemplos que utilizan funciones integradas para trabajar con un diccionario.
# Dictionary Built-in Functions squares = (0: 0, 1: 1, 3: 9, 5: 25, 7: 49, 9: 81) # Output: False print(all(squares)) # Output: True print(any(squares)) # Output: 6 print(len(squares)) # Output: (0, 1, 3, 5, 7, 9) print(sorted(squares))
Salida
Falso Verdadero 6 (0, 1, 3, 5, 7, 9)