如何每次获得随机列表?

时间:2016-04-23 04:26:57

标签: python python-2.7 random

我正在尝试从委员会制作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

1 个答案:

答案 0 :(得分:6)

这种情况正在发生,因为您正在创建一个包含3个随机成员的namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } void AddItems( string[] items ) { if(InvokeRequired) { Invoke((MethodInvoker) delegate { this.AddItems(items); }); return; } ListViewItem[] range = (items.Select<string, ListViewItem>(item => new ListViewItem(item))).ToArray(); listView1.Items.AddRange(range); } } } ,然后重新打印随机预定义列表subcommittee次(此处会出现xkcd):(An xkcd comes to mind here)

要解决此问题,请执行以下操作:

1000

您也可以这样做:

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.choice(committee) for _ in range(3)])