Python - 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/python

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/python

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

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

dict['Alice']:
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 a continuación en el ejemplo simple:

#!/usr/bin/python

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/python

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. Tenga en cuenta que se genera una excepción porque despuésdel 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. Lo que 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/python

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. Lo que 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/python

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: unhashable type: 'list'

Funciones y métodos de diccionario integrados

Python incluye las siguientes funciones de diccionario:

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

Compara elementos de ambos dict.

2 len (dictar)

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

3 str (dictado)

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ía un tipo de diccionario.

Python incluye los siguientes métodos de diccionario:

No Señor. Métodos con 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 clave no está en el diccionario

5 dict.has_key (clave)

Devuelve verdadero si la clave en el diccionario dict , falso en caso contrario

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 una lista de los valores de dict del diccionario .