Ich habe 40.000 IDs, die die Schlüssel in einem Wörterbuch sind. Ich muss sie mischen, zum Beispiel mit random.shuffle. Aber kann ich diesen Schritt überspringen?Kann die Reihenfolge der Schlüssel eines Wörterbuchs als eine zufällige Permutation betrachtet werden?
Dictionary speichert die Schlüssel nicht mit der Reihenfolge, in der sie kommen, also wenn ich keys = dict.keys()
mache, dann enthält keys
die Schlüssel in einer nicht aufsteigenden Reihenfolge. Mein Programm wird nur einmal ausgeführt, also ist es mir egal, ob das "Ergebnis der Permutation" unter den Ausführungen dasselbe ist.
Also, kann ich "schummeln" und den Shuffle-Schritt überspringen?
Ich verstehe, dass die Reihenfolge der Schlüssel ein wenig vorhersehbar ist. Was ich aber frage ist das:
Was ist die Chance (grob gesagt) einer Permutation von random.shuffle()
erzeugt, um (viel) identisch mit der Reihenfolge der Schlüssel zu sein?
Die Wörterbuchreihenfolge ist kaum zufällig - sie ist einfach undefiniert. Sie erhalten viel bessere Ergebnisse, wenn Sie einen echten Shuffle durchführen. Die Geschwindigkeit des Mischens sollte linear sein, daher sollte die Leistung kein Problem sein. –
'Die Wörterbuchreihenfolge ist kaum zufällig - sie ist nur undefiniert."; Verdammt eine Erklärung dazu wäre nett, vielleicht in einer Antwort, wenn es nicht passt? – gsamaras
Ich empfehle, Hash-Tabellen und Hash-Funktionen zu lesen. Sie erhalten wahrscheinlich die Schlüssel in der Hash-Reihenfolge. –