同じ結果を得るためにパラメータを使ってPythonをシャッフルする 質問する

同じ結果を得るためにパラメータを使ってPythonをシャッフルする 質問する
import random
x = [1, 2, 3, 4, 5, 6]
random.shuffle(x)
print x

リストをシャッフルする方法はわかっていますが、シャッフルによって毎回同じ結果が生成されるようにパラメータを使用してシャッフルすることは可能ですか?

何かのようなもの;

random.shuffle(x,parameter)

このパラメータでは結果は同じです。パラメータが で4、結果が[4, 2, 1, 6, 3, 5]毎回 であるとします。

ベストアンサー1

としてドキュメント説明する:

このモジュールによって提供される関数は、実際には random.Random クラスの隠しインスタンスのバインドされたメソッドです。状態を共有しないジェネレーターを取得するために、独自の Random インスタンスをインスタンス化できます。

したがって、random.Random独自のシードを使用して独自のインスタンスを作成するだけで、グローバル関数にはまったく影響しません。

>>> import random
>>> x = [1, 2, 3, 4, 5, 6]
>>> random.Random(4).shuffle(x)
>>> x
[4, 6, 5, 1, 3, 2]
>>> x = [1, 2, 3, 4, 5, 6]
>>> random.Random(4).shuffle(x)
>>> x
[4, 6, 5, 1, 3, 2]

(また、新しいインスタンスを何度も作成する代わりに、インスタンスを保持しRandomて再作成することもできますseed。あまり違いはありません。)

おすすめ記事