Python - Tabella hash

Le tabelle hash sono un tipo di struttura dati in cui l'indirizzo o il valore di indice dell'elemento dati viene generato da una funzione hash. Ciò rende l'accesso ai dati più veloce poiché il valore dell'indice si comporta come una chiave per il valore dei dati. In altre parole, la tabella hash memorizza le coppie chiave-valore ma la chiave viene generata tramite una funzione di hashing.

Quindi la funzione di ricerca e inserimento di un elemento di dati diventa molto più veloce in quanto i valori chiave stessi diventano l'indice della matrice che memorizza i dati.

In Python, i tipi di dati Dictionary rappresentano l'implementazione delle tabelle hash. Le chiavi nel dizionario soddisfano i seguenti requisiti.

  • Le chiavi del dizionario sono hash, cioè sono generate dalla funzione hash che genera un risultato univoco per ogni valore univoco fornito alla funzione hash.
  • L'ordine degli elementi di dati in un dizionario non è fisso.

Quindi vediamo l'implementazione della tabella hash utilizzando i tipi di dati del dizionario come di seguito.

Accesso ai valori nel dizionario

Per accedere agli elementi del dizionario, puoi usare le familiari parentesi quadre insieme alla chiave per ottenere il suo valore.

# 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']

Quando il codice sopra viene eseguito, produce il seguente risultato:

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

Aggiornamento del dizionario

Puoi aggiornare un dizionario aggiungendo una nuova voce o una coppia chiave-valore, modificando una voce esistente o eliminando una voce esistente come mostrato di seguito nel semplice esempio:

# 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']

Quando il codice sopra viene eseguito, produce il seguente risultato:

When the above code is executed, it produces the following result −
dict['Age']:  8
dict['School']:  DPS School

Elimina elementi del dizionario

È possibile rimuovere singoli elementi del dizionario o cancellare l'intero contenuto di un dizionario. È inoltre possibile eliminare l'intero dizionario in un'unica operazione. Per rimuovere esplicitamente un intero dizionario, è sufficiente utilizzare l'istruzione 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']

Questo produce il seguente risultato. Nota che viene sollevata un'eccezione perché dopo il dizionario del dict non esiste più -

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