Die Python-Liste wird nicht in einer Schleife gemischt

7

Ich versuche, eine zufällige Liste von Schlüsseln durch Wiederholung zu erstellen:

%Vor%

Das funktioniert perfekt. Allerdings, wenn ich es in eine Schleife stecke und die Ausgabe festhalte:

%Vor%

Ich bekomme 10 Mal dasselbe Shuffle ?! Offensichtlich stimmt hier etwas grundsätzlich nicht ... Vielen Dank im Voraus.

    
SilentGhost 25.01.2011, 14:31
quelle

2 Antworten

16

Das Problem besteht darin, dass Sie die Liste an Ort und Stelle mischen und dann die Referenz der Liste zur kombinierten Liste hinzufügen. Damit haben Sie 10-mal die gleiche Listenstruktur. "Grundlegende Änderung" ist, dass die Liste vor dem Anhängen kopiert werden muss.

Hier ist ein bisschen "pythonischer" Weg, um das gleiche Ergebnis mit Listenverständnis zu erreichen.

%Vor%     
user353283 25.01.2011, 14:33
quelle
3

Hypnos hat bereits eine sehr korrekte Lösung gefunden, also gebe ich Ihnen nur einen visuellen Weg um zu verstehen, was passiert ist und wie Sie solche Dinge in der Zukunft erkennen können:

%Vor%

gibt:

%Vor%

Wenn Sie außerdem feststellen, dass random.shuffle nichts zurückgibt, können Sie vermuten, dass die Umwandlung an Ort und Stelle erfolgt ist.

    
fortran 25.01.2011 14:40
quelle

Tags und Links