Python-random.seed()使用ノート

1300 ワード

Python-random.seed()使用ノート
次の問題を考えます.
import random
y=[i for i in range(10)]
random.seed(0)  
#           y      
z=______
print(z)

この問題の考察はrandom.seed()メソッドの理解.空の直接入力動作を考慮しない場合は、次の手順に従います.
z=random.choice(y)

実行するたびに次の結果が得られます.
6

毎回実行する結果が違うとしたらどうすればいいですか?ネット上でrandomを初めて実行するという文章があります.choice()は確定値で、後でランダム性を回復しますが、本当にそうですか?空行を次のように変更します.
z=[random.choice(y) for i in range(10)]

実行するたびにzは次のようになります.
[6, 6, 0, 4, 8, 7, 6, 4, 7, 5]

これはrandomを実行することを意味する.seed(0)後、random.choice()はyの要素をランダムに選択することができなくなり、空の行を次のように変更するなど、他の方法もランダム性を失いました.
z=random.sample(y,3)

実行するたびに次の結果が得られます.
[6, 9, 0]

空行を次のように変更します.
z =[random.random() for i in range(5)]

実行するたびに次の結果が得られます.
[0.8444218515250481, 0.7579544029403025, 0.420571580830845, 0.25891675029296335, 0.5112747213686085]

やはりrandomに戻りますseed()メソッドは、randomをもう一度実行します.seed()は、randomモジュールにランダム性を回復させ、yの要素を本当にランダムに選択することができます.どのようにして1行のコードでこの機能を完成しますか?条件付きフィルタリングを用いたリスト導出式は、すなわち、
z=[random.choice(y) for i in range(1) if random.seed()==None][0]

これにより,実行するたびにzが異なる.