Differenz zwischen Python 2 und 3 für Shuffle mit einem gegebenen Startwert

Ich schreibe ein Programm, das mit Python 2.7 und 3.5 kompatibel ist. Einige Teile davon beruhen auf stochastischen Prozessen. Meine Komponententests verwenden einen beliebigen Startwert, der in allen Ausführungen und Sprachen zu den gleichen Ergebnissen führt ... mit Ausnahme des Codes mitrandom.shuffle.

Beispiel in Python 2.7:

In[]:   import random
        random.seed(42)
        print(random.random())
        l = list(range(20))
        random.shuffle(l)
        print(l)
Out[]:  0.639426798458
        [6, 8, 9, 15, 7, 3, 17, 14, 11, 16, 2, 19, 18, 1, 13, 10, 12, 4, 5, 0]

Gleiche Eingabe in Python 3.5:

In []:  import random
        random.seed(42)
        print(random.random())
        l = list(range(20))
        random.shuffle(l)
        print(l)
Out[]:  0.6394267984578837
        [3, 5, 2, 15, 9, 12, 16, 19, 6, 13, 18, 14, 10, 1, 11, 4, 17, 7, 8, 0]

Bitte beachten Sie, dass die Pseudozufallszahl dieselbe ist, die gemischten Listen jedoch unterschiedlich sind. Wie erwartet ändert die erneute Ausführung der Zellen ihre jeweilige Ausgabe nicht.

Wie kann ich den gleichen Testcode für die beiden Versionen von Python schreiben?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage