一、列表练习#

1. 办公室分配#

1
2
3
4
5
需求:
一个学校,有3个办公室,现在有8位老师等待工位的分配,
请编写程序:
1. 完成随机的分配
2. 获取办公室信息 (每个办公室中的人数,及分别是谁)

分析

1
2
3
4
1.3个办公室(办公室:列表) 列表嵌套
2.8位老师 列表中保存
3.遍历老师的列表
4.随机存放到办公室中

代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# 1.3个办公室(办公室:列表) 列表嵌套
classroomList = [[], [], []]
# 2.8位老师 列表中保存
teachers = ['袁腾飞', '罗永浩', '俞敏洪', '李永乐', '王芳芳', '马云', '李彦宏', '马化腾']
# 3.遍历老师的列表
for teacher in teachers:
    # 随机办公室的角标 Ctrl+P查看提示
    # Ctrl+Alt+V 提取变量
    index = random.randint(0, 2)
    # 4.随机存放到办公室中
    classroom = classroomList[index]

    classroom.append(teacher)
print(classroomList)

2. 办公室分配进阶#

需求

1
在原来要求的基础上,需要每个办公室至少有一名老师

分析

1
2
1.首先将每一个办公室先添加一名老师
2.剩下的老师再进行随机分配

代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 1.3个办公室(办公室:列表) 列表嵌套
classroomList = [[], [], []]
# 2.8位老师 列表中保存
teachers = ['袁腾飞', '罗永浩', '俞敏洪', '李永乐', '王芳芳', '马云', '李彦宏', '马化腾']
# 3.每一个办公室中添加一名老师,遍历办公室还是老师列表  办公室:1  老师 2
for classroom in classroomList:
    # 随机获取一名老师
    # teacher = teachers[random.randint(0,len(teachers)-1)]
    # 添加到办公室中
    classroom.append(teachers.pop(random.randint(0,len(teachers)-1)))
    # 从老师列表中删除这个元素
    # del teachers[index]
    # teachers.remove(teacher)

# print(classroomList)
# print(teachers)
# 4.把剩下的老师随机分配到办公室中
for teacher in teachers:
    # 随机办公室的角标 Ctrl+P查看提示
    # Ctrl+Alt+V 提取变量
    index = random.randint(0, 2)
    # 4.随机存放到办公室中
    classroom = classroomList[index]

    classroom.append(teacher)

# 清空teachers
teachers.clear()

print(classroomList)
print(teachers)