English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriales Básicos de Python

Control de Flujo de Python

Funciones en Python

Tipos de datos en Python

Operaciones de Archivo de Python

Objetos y Clases de Python

Fecha y Hora de Python

Conocimientos Avanzados de Python

Manual de Referencia de Python

Diccionarios (Dictionary) en Python

En este artículo, aprenderá todo sobre Python dictionary; cómo crear, acceder, agregar y eliminar elementos, así como varios métodos integrados。

¿Qué es un diccionario en Python?

El diccionario de Python es una colección de elementos desordenados. Otros tipos de datos compuestos solo tienen valores como elementos, mientras que el diccionario tiene pares clave: valor (key: value)。

El diccionario está optimizado para recuperar valores cuando se conoce la clave。

¿Cómo crear un diccionario?

Crear un diccionario es tan simple como poner los elementos dentro de corchetes {} separados por comas。

Un elemento tiene una clave y un valor correspondiente, representado como un par, clave: valor。

A pesar de que el valor puede ser de cualquier tipo de datos y puede repetirse, la clave debe ser de un tipo inmutable (con elementos inmutables)CadenaNúmerooTupla) y debe ser único.

# Diccionario vacío
my_dict = {}
# Diccionario con claves enteras
my_dict = {1: 'apple', 2: 'ball'}
# Diccionario con claves mixtas
my_dict = {'name': 'John', 1: [2, 4, 3}]
# Usando dict()
my_dict = dict({1:'apple', 2:'ball'})
# Cada elemento como una secuencia de pares
my_dict = dict([(1,'apple'), (2,'ball')])

Como puede ver en el ejemplo anterior, también podemos usar la función integrada dict() para crear un diccionario.

¿Cómo acceder a los elementos del diccionario?

Aunque se usa el índice con otros tipos de contenedores para acceder a los valores, el diccionario usa claves. Las claves se pueden usar dentro de los corchetes o junto con el método get().

La diferencia de usar get() es que, si no se encuentra la clave, devolverá None en lugar de un error KeyError.

Cuando se ejecuta el programa, la salida es:

Jack
26

¿Cómo modificar o agregar elementos al diccionario?

El diccionario es mutable. Podemos usar el operador de asignación para agregar nuevos elementos o cambiar el valor de los elementos existentes.

Si la clave ya existe, se actualizará el valor, de lo contrario se agregará el nuevo par clave: valor al diccionario.

Cuando se ejecuta el programa, la salida es:

{'name': 'Jack', 'age': 27}
{'name': 'Jack', 'age': 27, 'address': 'Downtown'}

¿Cómo eliminar o eliminar elementos del diccionario?

Podemos usar el método pop() para eliminar un elemento específico del diccionario. Este método utiliza la clave proporcionada como el elemento para eliminar y devuelve el valor.

El método popitem() se puede usar para eliminar y devolver cualquier elemento (clave, valor) del diccionario. El método clear() se puede usar para eliminar todos los elementos de una vez.

También podemos usar la palabra clave del para eliminar un solo elemento o el diccionario completo.

Cuando se ejecuta el programa, la salida es:

16
{1: 1, 2: 4, 3: 9, 5: 25}
(1, 1)
{2: 4, 3: 9, 5: 25}
{2: 4, 3: 9}
{}

Métodos del diccionario de Python

A continuación se lista los métodos disponibles para el diccionario. En los ejemplos anteriores se han utilizado algunos de ellos.

Métodos del diccionario de Python
MétodoDescription
clear()Elimina todos los elementos del diccionario.
copy()Devuelve una copia superficial del diccionario.
fromkeys(seq[,v])Se utiliza para crear un nuevo diccionario, donde los elementos de la secuencia seq son las claves del diccionario y v es el valor inicial de todas las claves del diccionario.
get(clave[,d])

Devuelve el valor de la clave. Si la clave no existe, devuelve d (por defecto None).

items()Devuelve un array de tuplas (clave, valor) que se puede recorrer.
keys()Devuelve todos los claves del diccionario.
pop(clave[,d])Elimina el elemento con clave y devuelve su valor. Si no se encuentra la clave, devuelve d. Si no se proporciona d y no se encuentra la clave, se lanza un error KeyError.
popitem()}Elimina y devuelve cualquier elemento (clave, valor). Lanza un KeyError si el diccionario está vacío.
setdefault(clave[,d])Devuelve el valor de la clave especificada, si el valor de la clave especificada no está en el diccionario, devuelve el valor especificado, por defecto None.
update([other])usandootherde las claves/Actualiza el diccionario con pares de valores, sobrescribiendo las claves existentes.
values()Devuelve una lista con todos los valores del diccionario.

A continuación, algunos ejemplos del uso de estos métodos.

marks = {}.fromkeys(['Math','English','Science'], 0)
# Salida: {'English': 0, 'Math': 0, 'Science': 0}
print(marks)
for item in marks.items():
    print(item)
# Salida: ['English', 'Math', 'Science']
list(sorted(marks.keys()))

Comprensión de diccionarios en Python

La comprensión de diccionario es una manera elegante y concisa de crear nuevos diccionarios a partir de iteradores en Python.

La comprensión de diccionario contiene una expresión de par (clave: valor), seguida de una instrucción for entre corchetes {}.

Este es un ejemplo de cómo crear un diccionario donde cada elemento es una pareja de números y sus cuadrados.

squares = {x: x*x for x in range(6)}
# Salida: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
print(squares)

Este código es equivalente a

squares = {}
for x in range(6):
   squares[x] = x*x

La comprensión de diccionario puede elegir incluir másforodeclaración if.

Una declaración if opcional puede filtrar elementos para formar un nuevo diccionario.

Estos son algunos ejemplos de diccionarios que solo contienen elementos pares.

odd_squares = {x: x*x for x in range(11) si x%2 == 1}
# Salida: {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
print(odd_squares)

Para obtener más información, visitePython dictionary comprehension.

Otras operaciones de diccionario

Prueba de membresía de diccionario

Podemos usar la palabra clave para probar si una clave está en el diccionario con in. Tenga en cuenta que la prueba de membresía solo se aplica a las claves, no a los valores.

squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
# Salida: True
print(1 in squares)
# Salida: True
print(2 not in squares)
# Prueba de membresía solo para claves, no para valores
# Salida: False
print(49 in squares)

Recorrer el diccionario

Utilizando un bucle for, podemos recorrer cada clave del diccionario.

squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
for i in squares:
    print(squares[i])

Built-in dictionary functions

Built-in functions such as all(), any(), len(), cmp(), sort(), etc. are usually used with dictionary to perform different tasks.

Built-in dictionary functions
FunctionDescription
all()

If all keys in the dictionary are true (or the dictionary is empty), return True.

any()

If any key in the dictionary is true, return True. If the dictionary is empty, return False.

len()Return the length (number of items) of the dictionary.
cmp()Compare items of two dictionaries.
sorted()Return the newly sorted list of keys in the dictionary.

Here are some examples of using built-in functions to process dictionaries.

squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
# Output: 5
print(len(squares))
# Output: [1, 3, 5, 7, 9]
print(sorted(squares))