听说欧冠八分之一决赛抽了两次,那我用Python模拟抽签两次结果会怎样

听说本赛季欧冠八分之一抽签抽了两次?
在这里插入图片描述
在这里插入图片描述
那我本人也尝试写一个欧冠16强抽签的Python程序,看一看抽两次会抽出什么样的结果,代码如下

import random
d1=(('曼城','英格兰','A'),('利物浦','英格兰','B'),('阿贾克斯','荷兰','C'),('皇家马德里','西班牙','D'),('拜仁慕尼黑','德国','E'),('曼联','英格兰','F'),('里尔','法国','G'),('尤文图斯','意大利','H'))
d2=(('巴黎圣日耳曼','法国','A'),('马德里竞技','西班牙','B'),('葡萄牙体育','葡萄牙','C'),('国际米兰','意大利','D'),('本菲卡','葡萄牙','E'),('比利亚雷亚尔','西班牙','F'),('萨尔茨堡红牛','奥地利','G'),('切尔西','英格兰','H'))
seed=list(d1)
others=list(d2)
random.shuffle(seed)
random.shuffle(others)
print(seed)
print(others)
avail=[]
duizhen=[]

for i in range(8):
    duizhen.append([])
for j in range(8):
    duizhen[j].append(others[j])
    print(duizhen[j])
for m in range(8):
    seedzu=seed[m][2]
    seedguo=seed[m][1]
    avail=[]
    for n in range(8):
        if len(duizhen[n])<2:
            otherszu=duizhen[n][0][2]
            othersguo=duizhen[n][0][1]
            if seedzu== otherszu:
                continue
            else:
                if seedguo==othersguo:
                    continue
                elif (seedguo=='俄罗斯' and othersguo=='乌克兰') or (seedguo=='乌克兰' and othersguo=='俄罗斯'):
                    continue
                else:
                    avail.append(n)
        else:
            continue
    random.shuffle(avail)
    duizhen[avail[0]].append(seed[m])
for n in range(8):
    print(duizhen[n])

抽签思路,先抽取每一场小组第二,再根据抽取球队抽取符合条件的小组第一。
让我们看一看模拟着抽两次是什么样的结果吧

#第一次抽签结果
[('巴黎圣日耳曼', '法国', 'A'), ('阿贾克斯', '荷兰', 'C')]
[('国际米兰', '意大利', 'D'), ('曼联', '英格兰', 'F')]
[('本菲卡', '葡萄牙', 'E'), ('曼城', '英格兰', 'A')]
[('马德里竞技', '西班牙', 'B'), ('尤文图斯', '意大利', 'H')]
[('切尔西', '英格兰', 'H'), ('里尔', '法国', 'G')]
[('萨尔茨堡红牛', '奥地利', 'G'), ('拜仁慕尼黑', '德国', 'E')]
[('比利亚雷亚尔', '西班牙', 'F'), ('利物浦', '英格兰', 'B')]
[('葡萄牙体育', '葡萄牙', 'C'), ('皇家马德里', '西班牙', 'D')]
#第二次抽签结果
[('本菲卡', '葡萄牙', 'E'), ('阿贾克斯', '荷兰', 'C')]
[('国际米兰', '意大利', 'D'), ('曼城', '英格兰', 'A')]
[('葡萄牙体育', '葡萄牙', 'C'), ('里尔', '法国', 'G')]
[('萨尔茨堡红牛', '奥地利', 'G'), ('尤文图斯', '意大利', 'H')]
[('比利亚雷亚尔', '西班牙', 'F'), ('利物浦', '英格兰', 'B')]
[('切尔西', '英格兰', 'H'), ('皇家马德里', '西班牙', 'D')]
[('巴黎圣日耳曼', '法国', 'A'), ('曼联', '英格兰', 'F')]
[('马德里竞技', '西班牙', 'B'), ('拜仁慕尼黑', '德国', 'E')]

咦,第二次惊现曼联对阵大巴黎。
如果程序在抽签过程中报错,再运行一次就好。
这个程序并不能保证百分之百输出全部结果,希望未来能有友友优化成为普适的抽签程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值