Python3 Diccionario

Un diccionario es otro tipo de contenedor mutable que puede almacenar objetos de cualquier tipo.

Cada par clave-valor del diccionariokey=>valuese separa con dos puntos:y cada par se separa con una coma (,), y todo el diccionario se incluye entre llaves{}y el formato es el siguiente:

d = {key1 : value1, key2 : value2, key3 : value3 }

Nota:dictAl ser palabras clave y funciones integradas de Python, no se recomienda nombrar variables comodict。

Las claves deben ser únicas, pero los valores no necesariamente.

Los valores pueden tomar cualquier tipo de dato, pero las claves deben ser inmutables, como cadenas, números.

Un ejemplo sencillo de diccionario:

tinydict = {'name': 'ejemplo', 'likes': 123, 'url': 'www.example.com'}

También se puede crear un diccionario así:

tinydict1 = { 'abc': 456 }
tinydict2 = { 'abc': 123, 98.6: 37 }

Crear un diccionario vacío

Usando llaves{ }Crear un diccionario vacío:

Ejemplo

# Usar llaves {} para crear un diccionario vacío
emptyDict = {}
 
# Imprimir el diccionario
print(emptyDict)
 
# Verificar la cantidad de elementos del diccionario
print("Length:", len(emptyDict))
 
# Verificar el tipo
print(type(emptyDict))

El resultado del ejemplo anterior es:

{}
Length: 0
<class 'dict'>

Usando la función integradadict()para crear un diccionario:

Ejemplo

emptyDict = dict()
 
# Imprimir el diccionario
print(emptyDict)
 
# Verificar la cantidad de elementos del diccionario
print("Length:",len(emptyDict))
 
# Verificar el tipo
print(type(emptyDict))

El resultado del ejemplo anterior es:

{}
Length: 0
<class 'dict'>

Acceder a los valores del diccionario

Coloca la clave correspondiente entre corchetes, como en el siguiente ejemplo:

Ejemplo

#!/usr/bin/python3 tinydict = {'Name': 'Ejemplo', 'Age': 7, 'Class': 'First'} print ("tinydict['Name']: ", tinydict['Name']) print ("tinydict['Age']: ", tinydict['Age'])

El resultado del ejemplo anterior es:

tinydict['Name']:  Ejemplo
tinydict['Age']:  7

Si accedes a los datos con una clave que no está en el diccionario, se mostrará un error como el siguiente:

Ejemplo

#!/usr/bin/python3 tinydict = {'Name': 'Ejemplo', 'Age': 7, 'Class': 'First'} print ("tinydict['Alice']: ", tinydict['Alice'])

El resultado del ejemplo anterior es:

Traceback (most recent call last):
  File "test.py", line 5, in <module>
    print ("tinydict['Alice']: ", tinydict['Alice'])
KeyError: 'Alice'


Modificar el diccionario

La forma de añadir contenido nuevo a un diccionario es agregar nuevos pares clave/valor, modificar o eliminar los existentes, como en el siguiente ejemplo:

Ejemplo

#!/usr/bin/python3 tinydict = {'Name': 'Ejemplo', 'Age': 7, 'Class': 'First'} tinydict['Age'] = 8 # Actualizar Age tinydict['School'] = "Tutorial de novatos" # Añadir información print ("tinydict['Age']: ", tinydict['Age']) print ("tinydict['School']: ", tinydict['School'])
El resultado del ejemplo anterior es:
tinydict['Age']:  8
tinydict['School']:  Ejemplo


Eliminar elementos del diccionario

Se puede eliminar un solo elemento o vaciar todo el diccionario; para vaciarlo solo se necesita una operación.

Para eliminar un diccionario explícitamente se usa el comando del, como en el siguiente ejemplo:

Ejemplo

#!/usr/bin/python3 tinydict = {'Name': 'Ejemplo', 'Age': 7, 'Class': 'First'} del tinydict['Name'] # Eliminar la clave 'Name' tinydict.clear() # Vaciar el diccionario del tinydict # Eliminar el diccionario print ("tinydict['Age']: ", tinydict['Age']) print ("tinydict['School']: ", tinydict['School'])

Pero esto provocará una excepción, porque tras ejecutar del, el diccionario ya no existe:

Traceback (most recent call last):
  File "/ejemplo-test/test.py", line 9, in <module>
    print ("tinydict['Age']: ", tinydict['Age'])
NameError: name 'tinydict' is not defined

Nota:El método del() también se tratará más adelante.


Características de las claves del diccionario

Los valores de un diccionario pueden ser cualquier objeto de Python, ya sean objetos estándar o definidos por el usuario, pero las claves no.

Dos puntos importantes a recordar:

1) No se permite que la misma clave aparezca dos veces. Si al crear el diccionario la misma clave se asigna dos veces, se conservará el último valor, como en el siguiente ejemplo:

Ejemplo

#!/usr/bin/python3 tinydict = {'Name': 'Ejemplo', 'Age': 7, 'Name': 'Novato'} print ("tinydict['Name']: ", tinydict['Name'])

El resultado del ejemplo anterior es:

tinydict['Name']:  小Ejemplo

2) Las claves deben ser inmutables, por lo que pueden ser números, cadenas o tuplas, mientras que las listas no se pueden usar, como en el siguiente ejemplo:

Ejemplo

#!/usr/bin/python3 tinydict = {['Name']: 'Ejemplo', 'Age': 7} print ("tinydict['Name']: ", tinydict['Name'])

El resultado del ejemplo anterior es:

Traceback (most recent call last):
  File "test.py", line 3, in <module>
    tinydict = {['Name']: 'Ejemplo', 'Age': 7}
TypeError: unhashable type: 'list'


Funciones y métodos integrados del diccionario

El diccionario de Python incluye las siguientes funciones integradas:

No.Función y descripciónEjemplo
1len(dict)
Calcula el número de elementos del diccionario, es decir, el total de claves.
>>> tinydict = {'Name': 'Ejemplo', 'Age': 7, 'Class': 'First'}
>>> len(tinydict)
3
2str(dict)
Devuelve el diccionario como una representación de cadena imprimible.
>>> tinydict = {'Name': 'Ejemplo', 'Age': 7, 'Class': 'First'}
>>> str(tinydict)
"{'Name': 'Ejemplo', 'Class': 'First', 'Age': 7}"
3type(variable)
Devuelve el tipo de la variable introducida; si la variable es un diccionario, devuelve el tipo diccionario.
>>> tinydict = {'Name': 'Ejemplo', 'Age': 7, 'Class': 'First'}
>>> type(tinydict)
<class 'dict'>

El diccionario de Python incluye los siguientes métodos integrados:

No.Función y descripción
1dict.clear()
Elimina todos los elementos del diccionario
2dict.copy()
Devuelve una copia superficial del diccionario
3dict.fromkeys()
Crea un nuevo diccionario, tomando los elementos de la secuencia seq como claves del diccionario y val como el valor inicial correspondiente a todas las claves.
4dict.get(key, default=None)
Devuelve el valor de la clave especificada; si la clave no está en el diccionario, devuelve el valor predeterminado establecido por default.
5key in dict
Si la clave está en el diccionario dict, devuelve true; de lo contrario, devuelve false.
6dict.items()
Devuelve un objeto de vista en forma de lista.
7dict.keys()
Devuelve un objeto de vista.
8dict.setdefault(key, default=None)
Similar a get(), pero si la clave no existe en el diccionario, agregará la clave y establecerá el valor como default.
9dict.update(dict2)
Actualiza el diccionario dict con los pares clave/valor de dict2.
10dict.values()
Devuelve un objeto de vista.
11dict.pop(key[,default])
Elimina del diccionario el valor correspondiente a la clave key y devuelve el valor eliminado.
12 dict.popitem()
Devuelve y elimina el último par clave-valor del diccionario.
Otras extensiones