2016-04-23 7 views
1

私は委員から3人の学生のランダムなリスト(小委員会)を作ろうとしています。それから、新しいランダムな小委員会を1000回印刷したいと思います。今、私が持っているコードは同じ小委員会を1000回印刷しています。これをどうすれば解決できますか?毎回ランダムなリストを取得するには?

import random 

undergrads = ["ug_1", "ug_2", "ug_3", "ug_4"] 
grads = ["g_1", "g_2"] 
committee = undergrads + grads 

subcommittee = [] 
for i in range(3): 
    add_sub = random.choice(committee) 
    subcommittee.append(add_sub) 

for j in range(1000): 
    print subcommittee 
+3

あなたがループ内のコードのランダム化部を置く考えがありますか...? – Dolda2000

+2

私はなぜ 'list'を繰り返し印刷すると毎回ランダムな結果が出ると思うのか不思議です。 – TigerhawkT3

答えて

5

あなたはsubcommittee 3のランダムメンバーを作成し、そのランダムに定義済みリストに1000回を転載しているので、これが起こっている(XKCDはここで頭に浮かぶ):(An xkcd comes to mind here)

がこのような何かを修正するには:

for i in range(1000): 
    print([random.choice(committee) for _ in range(3)]) 

for i in range(1000): 
    subcommittee = [] 
    for i in range(3): 
     add_sub = random.choice(committee) 
     subcommittee.append(add_sub) 
    print subcommittee 

はまた、単にこれを行うことができます

いっそ、random.sampleを使用します。

for i in range(1000): 
    print(random.sample(committee, 3)) 
関連する問題