记录下自己的学习旅程,勿喷~
之前一直没想出来怎么确保每个教室至少2名老师,参考了下下面作者的思路,恍然大悟。
(Python学习) 10位老师随机分配到4个教室,保证每个教室至少有2个老师_buink的博客-CSDN博客
#!/usr/bin/python3
#encoding=utf-8
import random
offices=[[],[],[]]
teachers=['老师1','老师2','老师3','老师4','老师5','老师6','老师7','老师8','老师9']
#方法:先保证每个教室都有2名老师,在这基础上再将剩下的老师随机分配进教室
#从第一个教室开始,每个教室分配2名老师,两个变量,一是教室编号,二是老师数,所以需要做两次循环
z=0 #z教室编号,作为变量循环给3个教室分配,故循环3次
while z < 3: #这里也可以用【for xxx in offices:】来代替3次循环
y=0 #y老师数量,作为变量循环分配2名老师,故循环2次
while y<2:
x=random.randint(0,len(teachers)-1) #在0到当前teachers列表的长度范围内,随机抽取一位整数,作为下标,方便抽取后删除
offices[z].append(teachers[x]) #将该下标的老师分配进当前教室
del teachers[x] #该随机老师分配后,从teachers列表删除这名老师名单
y+=1
z+=1
#将剩下的老师随机分配进3个教室
for people in teachers:
t=random.randint(0,2)
offices[t].append(people)
#打印每个教室的老师情况
print("三个教室的老师数量分别为:%d,%d,%d\n"%(len(offices[0]),len(offices[1]),len(offices[2])))
index=1
for b in offices:
print("第%d个教室的老师有:"%index,end="")
#print("该教室具体老师有:")
for c in b:
print("%s "%c,end="")
index+=1
print("\n")