Python 3 - Diccionario

Cada clave está separada de su valor por dos puntos (:), los elementos están separados por comas y todo está encerrado entre llaves. Un diccionario vacío sin elementos se escribe con solo dos llaves, como esta: {}.

Las claves son únicas dentro de un diccionario, mientras que los valores pueden no serlo. Los valores de un diccionario pueden ser de cualquier tipo, pero las claves deben ser de un tipo de datos inmutable, como cadenas, números o tuplas.

Acceso a valores en el diccionario

Para acceder a los elementos del diccionario, puede utilizar los familiares corchetes junto con la clave para obtener su valor. A continuación se muestra un ejemplo simple:

#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])

Cuando se ejecuta el código anterior, produce el siguiente resultado:

dict['Name']:  Zara
dict['Age']:  7

Si intentamos acceder a un elemento de datos con una clave, que no es parte del diccionario, obtenemos el siguiente error:

#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
print ("dict['Alice']: ", dict['Alice'])

Cuando se ejecuta el código anterior, produce el siguiente resultado:

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

Actualizar diccionario

Puede actualizar un diccionario agregando una nueva entrada o un par clave-valor, modificando una entrada existente o eliminando una entrada existente como se muestra en un ejemplo simple que se muestra a continuación.

#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
dict['Age'] = 8; # update existing entry
dict['School'] = "DPS School" # Add new entry

print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])

Cuando se ejecuta el código anterior, produce el siguiente resultado:

dict['Age']:  8
dict['School']:  DPS School

Eliminar elementos del diccionario

Puede eliminar elementos individuales del diccionario o borrar todo el contenido de un diccionario. También puede eliminar el diccionario completo en una sola operación.

Para eliminar explícitamente un diccionario completo, simplemente use el deldeclaración. A continuación se muestra un ejemplo simple:

#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}

del dict['Name'] # remove entry with key 'Name'
dict.clear()     # remove all entries in dict
del dict         # delete entire dictionary

print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])

Esto produce el siguiente resultado.

Se genera una excepción porque después del dict, el diccionario ya no existe.

dict['Age']:
Traceback (most recent call last):
   File "test.py", line 8, in <module>
      print "dict['Age']: ", dict['Age'];
TypeError: 'type' object is unsubscriptable

Note - El método del () se analiza en la sección siguiente.

Propiedades de las claves del diccionario

Los valores del diccionario no tienen restricciones. Pueden ser cualquier objeto de Python arbitrario, ya sea objetos estándar u objetos definidos por el usuario. Sin embargo, no ocurre lo mismo con las claves.

Hay dos puntos importantes para recordar acerca de las claves del diccionario:

(a)No se permite más de una entrada por clave. Esto significa que no se permiten claves duplicadas. Cuando se encuentran claves duplicadas durante la asignación, la última asignación gana. Por ejemplo

#!/usr/bin/python3

dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'}
print ("dict['Name']: ", dict['Name'])

Cuando se ejecuta el código anterior, produce el siguiente resultado:

dict['Name']:  Manni

(b)Las claves deben ser inmutables. Esto significa que puede usar cadenas, números o tuplas como claves de diccionario, pero algo como ['clave'] no está permitido. A continuación se muestra un ejemplo simple:

#!/usr/bin/python3

dict = {['Name']: 'Zara', 'Age': 7}
print ("dict['Name']: ", dict['Name'])

Cuando se ejecuta el código anterior, produce el siguiente resultado:

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

Funciones y métodos de diccionario integrados

Python incluye las siguientes funciones de diccionario:

No Señor. Función descriptiva
1 cmp (dict1, dict2)

Ya no está disponible en Python 3.

2 len (dictar)

Da la longitud total del diccionario. Esto sería igual al número de elementos del diccionario.

3 str (dict)

Produce una representación de cadena imprimible de un diccionario.

4 tipo (variable)

Devuelve el tipo de variable pasada. Si la variable pasada es diccionario, devolverá un tipo de diccionario.

Python incluye los siguientes métodos de diccionario:

No Señor. Método y descripción
1 dict.clear ()

Elimina todos los elementos del diccionario dict

2 dict.copy ()

Devuelve una copia superficial del diccionario dict

3 dict.fromkeys ()

Cree un nuevo diccionario con claves de seq y valores establecidos en value .

4 dict.get (clave, predeterminado = Ninguno)

Para clave clave, devuelve valor o predeterminado si la clave no está en el diccionario

5 dict.has_key (clave)

Eliminado, utilice en su lugar en funcionamiento.

6 dict.items ()

Devuelve una lista de pares de tuplas de dict (clave, valor)

7 dict.keys ()

Devuelve la lista de claves del diccionario dict

8 dict.setdefault (clave, predeterminado = Ninguno)

Similar a get (), pero establecerá dict [clave] = predeterminado si la clave no está ya en dict

9 dict.update (dict2)

Agrega pares clave-valor del diccionario dict2 a dict

10 dict.values ​​()

Devuelve la lista de valores de diccionario dict