Diccionario de Python (con ejemplos)

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/valuepar.

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 keyy un correspondiente valueque 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 (), KeyErrorse eleva en caso de que no se encuentre una clave en el diccionario. Por otro lado, el get()método regresa Nonesi 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 keyy 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 delpalabra 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 KeyErrorsi 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 fordeclaració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 Truesi todas las claves del diccionario son verdaderas (o si el diccionario está vacío).
ninguna() Devuelve Truesi 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)

Articulos interesantes...