Diccionario de Python
Diccionario de Python
En este tutorial, aprenderá todo sobre los diccionarios de Python; cómo se crean, accediendo, agregando, eliminando elementos de ellos y varios métodos incorporados.
Video: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
pareja.
Los diccionarios están optimizados para recuperar valores cuando se conoce la clave.
Creación de diccionario de Python
Crear un diccionario es tan simple como colocar elementos entre llaves {}
separados por comas.
Un artículo tiene un key
y un value
correspondiente 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 el dict()
integrado función.
Acceso 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 usar dentro de corchetes []
o con el get()
método.
Si usamos los corchetes []
, KeyError
se genera en caso de que no se encuentre una clave en el diccionario. Por otro lado, el get()
método devuelve 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 None Traceback (most recent call last): File "<string>", line 15, in <module> print(my_dict['address']) KeyError: 'address'
Cambiar y agregar elementos del diccionario
Los diccionarios son mutables. Podemos agregar nuevos artículos o cambiar el valor de los artículos existentes usando 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, una nueva (clave:valor ) par se agrega 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
{'name': 'Jack', 'age': 27} {'name': 'Jack', 'age': 27, 'address': 'Downtown'}
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 key
proporcionado y devuelve el value
.
El popitem()
El método se puede usar para eliminar y devolver un (key, value)
arbitrario par de elementos del diccionario. Todos los elementos se pueden eliminar a la vez, usando el clear()
método.
También podemos usar el 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} {} Traceback (most recent call last): File "<string>", line 30, in <module> print(squares) NameError: name 'squares' is not defined
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 |
---|---|
borrar() | 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 valor igual a v (predeterminado en None ). |
obtener(clave[,d]) | Devuelve el valor de la clave . Si la clave no existe, devuelve d (predeterminado en None ). |
elementos() | Retorna un nuevo objeto de los elementos del diccionario en formato (clave, valor). |
teclas() | Devuelve un nuevo objeto de las claves del diccionario. |
pop(tecla[,d]) | Elimina el elemento con la tecla y devuelve su valor o d si clave no se encuentra. Si d no se proporciona y la clave no se encuentra, levanta KeyError . |
popitem() | Elimina y devuelve un elemento arbitrario (clave, valor ). Aumenta KeyError si el diccionario está vacío. |
establecer por defecto(clave[,d]) | Devuelve el valor correspondiente si la clave está en el diccionario. Si no, inserta la clave con un valor de d y devuelve d (predeterminado en None ). |
actualizar([otro]) | Actualiza el diccionario con los pares clave/valor de otro , sobrescribiendo las claves existentes. |
valores() | Devuelve un nuevo objeto de los valores del diccionario |
Estos son 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
{'Math': 0, 'English': 0, 'Science': 0} ('Math', 0) ('English', 0) ('Science', 0) ['English', 'Math', 'Science']
Comprensión del diccionario de Python
La comprensión del 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 un for
declaración dentro de 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}
Una comprensión de diccionario puede contener opcionalmente más declaraciones for o if.
Un if
opcional puede filtrar elementos para formar el nuevo diccionario.
Aquí hay algunos ejemplos para hacer un diccionario con solo elementos impares.
# Dictionary Comprehension with if conditional
odd_squares = {x: x*x for x in range(11) if x % 2 == 1}
print(odd_squares)
Salida
{1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
Para aprender más comprensiones de diccionarios, visite Comprensión de diccionarios de Python.
Otras operaciones de diccionario
Prueba de membresía del diccionario
Podemos probar si un key
está en un diccionario o no usa la palabra clave in
. Tenga en cuenta que la prueba de membresía es solo para el keys
y no para el 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)
Salida
True True False
Iterando a través de un diccionario
Podemos iterar a través de cada clave en un diccionario usando un for
bucle.
# Iterating through a Dictionary
squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
for i in squares:
print(squares[i])
Salida
1 9 25 49 81
Funciones integradas del diccionario
Funciones integradas como all()
, any()
, len()
, cmp()
, sorted()
, etc. se usan comúnmente con diccionarios para realizar diferentes tareas.
Función | Descripción |
---|---|
todos() | Regresar True si todas las claves del diccionario son verdaderas (o si el diccionario está vacío). |
cualquiera() | Regresar True si alguna clave del diccionario es verdadera. Si el diccionario está vacío, devuelve False . |
largo() | Devuelve la longitud (el número de elementos) en el diccionario. |
cmp() | Compara elementos de dos diccionarios. (No disponible en Python 3) |
ordenado() | Retorna una nueva lista ordenada de claves en el diccionario. |
Estos son 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
False True 6 [0, 1, 3, 5, 7, 9]
python