zB:
%Vor%Was ist eine gute Hash-Funktion, um gleiche Hashes für beide Dicts zu generieren? Die Wörterbücher werden haben grundlegende Datentypen wie int, list, dict und strings, keine anderen Objekte.
Es wäre großartig, wenn der Hash-Wert platzoptimiert ist, die Zielmenge etwa 5 Millionen Objekte ist, daher sind die Kollisionschancen ziemlich gering.
Ich bin mir nicht sicher, ob json.dumps oder andere Serialisierungen der Gleichheit statt der Struktur der Mitglieder im Wörterbuch gerecht werden. z.B. Grundlegendes Hashing mit str of dict funktioniert nicht:
%Vor%json.dumps funktioniert auch nicht:
%Vor%Das pprint-Modul sortiert die Diktatschlüssel
%Vor%Wenn Sie die Hashes beibehalten möchten, sollten Sie einen Hash von hashlib verwenden. sha1 ist viel
Warum sortieren Sie nicht vor dem Hashing? Sicher, es kann eine nicht vernachlässigbare Zeit erfordern, um dies zu tun, aber zumindest kann man weiterhin eine "gute" Hash-Funktion verwenden, d. H. Eine, die eine gute Dispersion plus alle anderen gewünschten Eigenschaften zeigt. Wenn die Idee ist, Platz zu sparen, liegt es wahrscheinlich daran, dass Sie viele Einträge im Wörterbuch erwarten. Daher wird die Zeit, die durch das Sortieren der Menge bei der Verwendung einer "guten" Hash-Funktion gespart wird, bestimmt durch die Suchzeit bei Verwendung von "schlechte" Hash-Funktion als Folge einer hohen Anzahl von Kollisionen.
Tags und Links python