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
。あまり違いはありません。)