Skip to main content
 首页 » 编程设计

python之如何每次都得到一个随机列表

2025年05月04日15zhwl

我正在尝试从委员会中随机列出 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))