python两两抽签分组
时间: 2023-10-30 20:09:41 浏览: 153
Python两两抽签分组是一种随机分组算法,可以将一组人员随机分成若干个小组,每个小组由两个人组成。下面是一个示例代码:
import xlrd,random
xlsx=xlrd.open_workbook(r'D:\新桌面\python\python课件\示例.xls') #打开所用的execl工作簿xls
table=xlsx.sheet_by_index(0) #打开所用信息所在的工作表sheet
rows=table.nrows #提取工作表所用行数即员工总数
w=[i for i in range(nrows)] #创建从0到(总数-1)的抽奖列表
for i in range(1,1+nrows//2): #只需需要循环总数一半向下取整即可
x=random.choice(w) #随机选取一个员工x
w.remove(x) #从抽奖列表中删除员工x
for j in range(len(w)): #从剩余列表中遍历寻找下一个中奖人员
y=random.choice(w) #随机再选取一名员工y
if table.cell_value(y,0)!=table.cell_value(x,0): #判断两名员工是否是同一单位,这里运用xlrd库里的cell_value(x,y),提取第x行第y列单元格cell的信息
print('第{}次中奖人员:'.format(i),table.cell_value(x,1),table.cell_value(y, 1))
w.remove(y) #从抽奖列表中删除员工y
break #满足抽取两人后,结束内层循环,继续大循环
上述代码中,我们首先打开一个Excel文件,然后读取其中的信息,将所有员工的编号存入一个列表中。接着,我们使用random库中的choice函数随机选取一个员工,再从列表中删除该员工,以免重复选取。然后,我们再次使用choice函数随机选取一个员工,判断该员工是否与前一个员工来自同一单位,如果不是,则输出这两个员工的信息,并从列表中删除该员工。最后,我们使用break语句结束内层循环,继续大循环。
阅读全文