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)
结果是:
每个办公室的信息
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,657评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,889评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,057评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,509评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,562评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,443评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,251评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,129评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,561评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,779评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,902评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,621评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,220评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,838评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,971评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,025评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,843评论 2 354

推荐阅读更多精彩内容

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