我正在尝试从委员会中随机列出 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 个随机成员的 subcommittee,然后将该随机预定义列表重印 1000 次(此处想到 xkcd):
要解决此问题,请执行以下操作:
for i in range(1000):
subcommittee = []
for i in range(3):
add_sub = random.choice(committee)
subcommittee.append(add_sub)
print subcommittee
你也可以这样做:
for i in range(1000):
print([random.choice(committee) for _ in range(3)])
或者更好的是,使用 random.sample :
for i in range(1000):
print(random.sample(committee, 3))
