5.4 字典的遍历

示例:

 # 定义字典
 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. 遍历字典中的keyvalue(键值对)。
 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)
结果是:
每个办公室的信息
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、元组 1、元组的定义: 元组, 英文为 **tuple**, Python的元组与列表类似,不同之处在于**元...
    MAVIS_42bf阅读 802评论 0 0
  • 一、元祖 1.什么是元祖 """使用()将多个元素括起来,多个元素之间用逗号隔开a.容器,可以同时存储多个数据,不...
    大漠判官1阅读 395评论 0 0
  • 增、删、改、查 1.修改列表元素 通过下标获取元素,然后重新赋值: 列表名[下标] = 新的值注意: 这儿的下标不...
    zzzsssr阅读 362评论 0 3
  • 写在前面的话 代码中的# > 表示的是输出结果 输入 使用input()函数 用法 注意input函数输出的均是字...
    FlyingLittlePG阅读 2,980评论 0 9
  • """1.什么是元祖(tuple)python提供的容器型数据类型,不可变并且有序。(元祖就是不可变的列表)不可变...
    LittleBear_6c91阅读 257评论 0 0