示例:
# 定义字典 person_dict = {"name": "吕布", "age": 30, "sex": "男"}
1. 遍历字典中的所有
key
(键)。for key in person_dict.keys(): # 根据 key 获取 value value = person_dict[key] print(key, value) # 结果是:name 吕布 age 30 sex 男
2. 遍历字典中的所有
value
(值)。for value in person_dict.values(): print(value) # 结果是:吕布 30 男
3. 遍历字典中的所有
item
(元素)。for item in person_dict.items(): # 字典中的每一项数据在进行遍历的时候,每项数据的类型是元组 print(item, type(item)) # 结果是:('name', '吕布') <class 'tuple'> ('age', 30) <class 'tuple'> ('sex', '男') <class 'tuple'> # 获取每一项数据的 key 和 value key = item[0] value = item[1] print(key, value) # 结果是:name 吕布 age 30 sex 男
4. 遍历字典中的
key
和value
(键值对)。for key, value in person_dict.items(): print(key, value) # 结果是:name 吕布 age 30 sex 男 # 注意:直接字典进行遍历,获取的是每一个 key for key in person_dict: print(key) # 结果是:name age sex
5.4.1 enumerate
函数结合for
循环
使用for
循环遍历容器类型数据的时候,既想要下标又想要数据,可以结合该函数使用。
示例:
my_list = ["a", "b", "c"] # 记录当前的下标 index = 0 for value in my_list: print(index, value) # 结果是:0 a 1 b 2 c index += 1
for
循环结合enumerate()
函数的使用:使用enumerate()
函数后,每项数据变成了元组,元组中的第一个值是下标,第二个值是要遍历的数据。for index, value in enumerate(my_list): print(index, value) # 结果是:0 a 1 b 2 c my_str = "def" for index, value in enumerate(my_str): print(index, value) # 结果是:0 d 1 e 2 f person_dict = {"name": "吕布", "age": 30, "sex": "男"} for index, item in enumerate(person_dict.items()): # 要想知道当前遍历的是第几项数据 if index == 1: break print(index, item) # 结果是:0 ('name', '吕布') # 利用拆包 key, value = item print(key, value) # 结果是:name 吕布
5.4.2 结合enumerate()
函数对老师分配工位进行改进
示例:
import random
# 定义办公室列表
office_list = [[], [], []]
# 定义老师列表
teacher_list = ["赵老师", "钱老师", "孙老师", "李老师", "周老师", "吴老师", "郑老师", "王老师"]
# 遍历老师列表,取出每一位老师,对每一位老师生成一个随机的办公室下标
for teacher in teacher_list:
# 生成随机的办公室下标
index = random.randint(0, 2)
# print(teacher, index)
# 根据随机的下标取到对应的办公室,然后再把老师添加到指定办公室即可
office_list[index].append(teacher)
# 代码执行到此,说明8位老师随机分配工位完成
print(office_list) # 结果是:[['赵老师', '孙老师'], ['钱老师', '李老师', '吴老师', '王老师'], ['周老师', '郑老师']]
# 结合 enumerate 查看每个办公室的信息
for index, office in enumerate(office_list):
# 计算每个办公室的人数
count = len(office)
print("当前是第%d个办公室,人数为:%d" % (index, count))
# 遍历办公室小列表,获取每一位老师的信息
for teacher_name in office:
print(teacher_name)
结果是:
每个办公室的信息
每个办公室的信息