根据报名人员,让他们随机组队

本文介绍了一种使用Python实现的简单随机分组算法。该算法根据前锋和后卫的角色进行分组,通过随机选择的方式形成队伍。文章展示了如何利用列表和随机模块来实现这一功能,并通过示例代码解释了其工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#coding=utf-8
from random import choice
vanguards = ['sl','qb','zy','lf','wc','gh','wl','xy','yt','sln'] #前锋人员
guards =[] #后卫
almighty =[] #全能,既能做后卫也能做前锋
result = {}
print "报名人数:",len(vanguards)
#print "后卫报名人数:",len(guards)
#print "全能人员人数:",len(almighty)
print "共可组成:",(len(vanguards)+len(guards)+len(almighty))/2,"队"
def team(La,Lb):
    while (len(La) and len(Lb)) > 0:
        vanguard = choice(La)
        La.remove(vanguard)
        guard = choice(Lb)
        Lb.remove(guard)
        result[vanguard] = guard
    return max(La,Lb)
def team2(Lc):
    while len(Lc) > 1:
        p1 = choice(Lc)
        Lc.remove(p1)
        p2 = choice(Lc)
        Lc.remove(p2)
        result[p1] = p2
    if Lc != []:
        print "剩下",Lc,"没组队"

first1 = team(vanguards,guards) # 前锋和后卫先组队
if first1 == []:
    team2(almighty)
else:
    secd = team(first1,almighty)# 剩下的前锋或者后卫和全能组队
    if secd !=[]:
        team2(secd) #最后组内的互相组队
i=1
for k,v in result.items():
    print i,"---",k,"和",v
    i+=1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值