我正在尝试从委员会制作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
答案 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):
要解决此问题,请执行以下操作:
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)])