Python - Tabla hash

Las tablas hash son un tipo de estructura de datos en la que la dirección o el valor de índice del elemento de datos se genera a partir de una función hash. Eso hace que el acceso a los datos sea más rápido ya que el valor del índice se comporta como una clave para el valor de los datos. En otras palabras, la tabla hash almacena pares clave-valor, pero la clave se genera mediante una función hash.

Entonces, la función de búsqueda e inserción de un elemento de datos se vuelve mucho más rápida a medida que los valores clave se convierten en el índice de la matriz que almacena los datos.

En Python, los tipos de datos del diccionario representan la implementación de tablas hash. Las claves del diccionario cumplen los siguientes requisitos.

  • Las claves del diccionario son hash, es decir, se generan mediante la función hash, que genera un resultado único para cada valor único proporcionado a la función hash.
  • El orden de los elementos de datos en un diccionario no es fijo.

Entonces vemos la implementación de la tabla hash utilizando los tipos de datos del diccionario como se muestra a continuación.

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.

# Declare a dictionary 
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}

# Accessing the dictionary with its key
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

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:

# Declare a dictionary
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:

When the above code is executed, it produces the following result −
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 la instrucción del. -

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és del diccionario del dict ya no existe -

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