Hashtabelle

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
duffy6
User
Beiträge: 3
Registriert: Donnerstag 7. April 2022, 16:10

Hallo zusammen,

ich will eine "Hashtabelle" selbst progammieren.
Dazu habe ich einige Zahlen (13 , 25, 7, 17, 19), die mit hash = zahl % 9 verarbeitet werden sollen und dann im entsprechenden "Fach" gespeichert werden.
Es soll bspw. 12 Fächer "geben".

Ich dachte nun an eine verschachtelte Liste in der Art:
meineListe[11][Anzahl_in_diesem_Fach_befindlichen_Zahlen]

Also so in der Art (im Bild mit anderen Zahlen):
Bild

Ich steige bei den verschachtelten Listen aber nicht durch.

Bisher habe ich sowas:

Code: Alles auswählen

tabellenGroesse = 12
#---------------------
def hashing(wert):
    rueckgabe = wert % 9
    return rueckgabe
# ---------------------

# leere Liste anlegen
meineListe=[]

for i in range(tabellenGroesse): #### --- hier Änderung
    zahl=int(input(str(i)+"-te Zahl eingeben, die gehasht werden soll:"))
    print(i, "--> Fach: \t", hashing(zahl))
    meineListe[hashing(zahl)].append(zahl)

print(meineListe)

Ich erhalte immer einen Fehler: IndexError: list index out of range"

Könnt ihr mir mal auf die Sprünge helfen?
Benutzeravatar
sparrow
User
Beiträge: 4540
Registriert: Freitag 17. April 2009, 10:28

Warum willst du so etwas selbst implementieren und verwendest kein dict?

Vielleicht solltest du dich allgemein noch einmal mit den Datenstrukturen von Python beschäftigen. Eine Liste funktioniert nicht so, wie du vermutest. Und das Wissen über Datentrukturen ist in Python essentiell.

Wie kommst du darauf, dass das "hashing(zahl)"-te Element von meineListe eine Liste ist, an die du etwas anhängen kannst? Woran machst du fest, dass das "hashing(zahl)"-te Element übehaupt existiert? Das dürfte schwer möglich sein, wenn du noch gar kein Element in der Liste hast.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das sind Hausaufgaben, sparrow :)
Benutzeravatar
__blackjack__
User
Beiträge: 14078
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Wobei es dort wo das Bild her ist http://www.peter-junglas.de/fh/vorlesun ... index.html , doch sogar eine Lösung gibt. Zwar in Java, aber immerhin eine Lösung: http://www.peter-junglas.de/fh/vorlesun ... tion7.html
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Antworten