#需求:为8位老师随机分配办公室
#先定义一个列表用来存储8位老师的姓名
teachers = [‘xiaowang‘, ‘xiaoli‘, ‘xiangming‘, ‘xiaohua‘, ‘xiaogang‘, ‘lili‘, ‘huyu‘, ‘wuyu‘]
#定义一个空嵌套列表,里面有三个空列表用来等待其他老师的加入
office = [[],[],[]]
#为8位老师随机分配办公室:产生随机数的方式
for teacher in teachers:
index = random.randint(0,2)
office[index].append(teacher)
# print(office)
#将每个办公室里的老师打印出来,并显示办公室编号
i = 1
for room in office:
#print(room)
print("办公室%d里的老师为"%i)
for name in room:
print(name)
print("-"*10)
i+=1
效果如下:
#扩展:怎样保证每个办公室至少有两个人?
import random
#先定义一个列表用来存储8位老师的姓名
teachers = [‘xiaowang‘, ‘xiaoli‘, ‘xiangming‘, ‘xiaohua‘, ‘xiaogang‘, ‘lili‘, ‘huyu‘, ‘wuyu‘]
#定义一个空嵌套列表,里面有三个空列表用来等待其他老师的加入
office = [[],[],[]]
#获取空列表的长度,也就是办公室的个数
listLength = len(office)
#先为三个办公室中的每个随机分配两个老师
for room in range(0,listLength):
i = 0
while i<2: #为每个办公室随机分配两位老师
length = len(teachers)-1
teacherIndex = random.randint(0,length) #产生0~7之间的随机数
teacher = teachers[teacherIndex] #随机选择一个老师
office[room].append(teacher) #将被选中的老师添加到办公室号为room的办公室中
del teachers[teacherIndex] #将已经被选中的老师从列表中删除
i+=1
#将剩下的两位老师随机分配到三个办公室,这两位可能会被分配到同一个办公室
for j in range(0,2):
index = random.randint(0,2)
rest_teacher = teachers[j]
office[index].append(rest_teacher)
j+=1
#将每个办公室里的老师打印出来,并显示办公室编号
k = 1
for roomNum in office:
print("办公室%d里的老师为:"%k)
for name in roomNum:
print(name)
print("-"*10)
k+=1
效果如下:
原文地址:https://www.cnblogs.com/yxtz271828/p/8955662.html