5.4 字典的遍历

2023-06-13  本文已影响0人  拖延症患者10

示例:

 # 定义字典
 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)
结果是: 每个办公室的信息
上一篇 下一篇

猜你喜欢

热点阅读