Python - Hash-Tabelle

Hash-Tabellen sind eine Art Datenstruktur, in der die Adresse oder der Indexwert des Datenelements aus einer Hash-Funktion generiert wird. Dies beschleunigt den Zugriff auf die Daten, da sich der Indexwert als Schlüssel für den Datenwert verhält. Mit anderen Worten, die Hash-Tabelle speichert Schlüssel-Wert-Paare, aber der Schlüssel wird durch eine Hashing-Funktion generiert.

Die Such- und Einfügefunktion eines Datenelements wird also viel schneller, da die Schlüsselwerte selbst zum Index des Arrays werden, in dem die Daten gespeichert sind.

In Python repräsentieren die Dictionary-Datentypen die Implementierung von Hash-Tabellen. Die Schlüssel im Wörterbuch erfüllen die folgenden Anforderungen.

  • Die Schlüssel des Wörterbuchs sind hashbar, dh sie werden durch eine Hashing-Funktion generiert, die ein eindeutiges Ergebnis für jeden eindeutigen Wert generiert, der der Hash-Funktion übergeben wird.
  • Die Reihenfolge der Datenelemente in einem Wörterbuch ist nicht festgelegt.

Wir sehen also die Implementierung der Hash-Tabelle unter Verwendung der folgenden Wörterbuchdatentypen.

Zugriff auf Werte im Wörterbuch

Um auf Wörterbuchelemente zuzugreifen, können Sie die bekannten eckigen Klammern zusammen mit dem Schlüssel verwenden, um dessen Wert zu erhalten.

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

Wenn der obige Code ausgeführt wird, wird das folgende Ergebnis erzeugt:

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

Wörterbuch aktualisieren

Sie können ein Wörterbuch aktualisieren, indem Sie einen neuen Eintrag oder ein Schlüssel-Wert-Paar hinzufügen, einen vorhandenen Eintrag ändern oder einen vorhandenen Eintrag löschen, wie unten im einfachen Beispiel gezeigt.

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

Wenn der obige Code ausgeführt wird, wird das folgende Ergebnis erzeugt:

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

Wörterbuchelemente löschen

Sie können entweder einzelne Wörterbuchelemente entfernen oder den gesamten Inhalt eines Wörterbuchs löschen. Sie können auch das gesamte Wörterbuch in einem einzigen Vorgang löschen. Um ein gesamtes Wörterbuch explizit zu entfernen, verwenden Sie einfach die del-Anweisung. - -

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

Dies führt zu folgendem Ergebnis. Beachten Sie, dass eine Ausnahme ausgelöst wird, da das Wörterbuch nach dem Löschen nicht mehr existiert.

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