python小作业3:随机分配老师进房间 题:已知8名老师,需要随机分配至3个房间里
分析:两种思路都可, 1、依次/随机 选择一名老师,进入随机挑选的房间; 2、依次/随机 选择一个房间,随机挑选一名老师进来。 备注:由于每一个老师都一定要进入房间内,但不是每一个房间都要进老师,因此,第二种思路需要在老师列表内,增加一个或多个"空"老师。此思路涉及到概率问题,较为复杂,就不展开了。
网上教程和我自己均采用了第一种思路。 教程看到的方法是依次选择老师,随机选择房间进入,较为简单,主要代码如下:
offices = [[], [], []]
for name in names:
index = random.randint(0, 2)
offices[index].append(name)
我则是随机选择老师,涉及到老师被抽取后,列表也要同步更新的问题,因此借助了pop函数的返回值即为被抽取的列表元素这一特性,抽取该返回值的同时,也更新了列表。
import random
teacher = ["教师1","教师2","教师3","教师4","教师5","教师6","教师7","教师8"]
room = [[],[],[]]
while len(teacher) > 0 :
ranteacherIndex = random.randint(0,len(teacher)-1)
ranroomIndex = random.randint(0,2)
room[ranroomIndex].append(teacher.pop(ranteacherIndex))
上条语句阐释:随机选择一个房间列表,追加用pop函数返回出来的教师列表元素,pop在执行过程中,已经自动完成了对教师列表的更新
print(room)
|