课件0505-字典的应用-字典2-字典的遍历和应用_第1页
课件0505-字典的应用-字典2-字典的遍历和应用_第2页
课件0505-字典的应用-字典2-字典的遍历和应用_第3页
课件0505-字典的应用-字典2-字典的遍历和应用_第4页
课件0505-字典的应用-字典2-字典的遍历和应用_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

字典的遍历和应用制作:教材编写团队出版社:机械工业出版社《Python编程基础与应用》配套课件本课件为《Python编程基础与应用(第2版)》配套教学资源,由编写团队精心打造。为便于教学使用,团队同步提供了丰富的辅助材料,涵盖微课视频、教学课件、实训手册、习题答案、课程标准及程序源代码等。同时,教材配套超星教学示范包,支持一键克隆为网络在线课程,助力高效开展线上线下混合式教学。欢迎联系出版方订购使用。

书名:《Python编程基础与应用(第2版)》出版社:机械工业出版社主编:蓝永健、陈冬冬副主编:蔡德琛、朱海鑫、邓爱玲+contents目录遍历字典的键(keys)遍历字典的值(values)遍历键值对(items)字典推导式中的循环嵌套字典的循环使用zip()同时遍历多个字典遍历字典的键(keys)01Python字典三种遍历方法汇总表遍历目标方法语法示例返回值适用场景直接遍历forkeyindict:键只需要键时,最简洁键(keys)使用keys()方法forkeyindict.keys():键明确表示要遍历键值(values)使用values()方法forvalueindict.values():值只关心字典的值时键值对(items)使用items()方法forkey,valueindict.items():(键,值)元组需要同时访问键和值,最常用方法1.1:直接遍历字典#直接遍历字典(默认遍历键)print("可用水果:")forfruitinfruit_prices:print(f"我们有{fruit}")#输出结果:#可用水果:#我们有苹果#我们有香蕉#我们有橙子#我们有葡萄直接对字典进行循环,默认会遍历字典的所有键。方法1.2:使用keys()方法#创建一个关于水果价格的字典fruit_prices={"苹果":8,"香蕉":5,"橙子":6,"葡萄":12}#遍历所有键print("水果种类:")forfruitinfruit_prices.keys():print(f"-{fruit}")#水果种类:#-苹果#-香蕉#-橙子#-葡萄使用keys()方法获取字典的所有键,然后进行循环遍历。遍历字典的值(values)02方法:遍历字典的值(values)使用values()方法获取字典的所有值,然后进行循环遍历。#遍历所有值print("水果价格:")forpriceinfruit_prices.values():print(f"-{price}元/斤")#输出结果:#水果价格:#-8元/斤#-5元/斤#-6元/斤#-12元/斤遍历键值对(items)03方法:遍历字典的键值对(items)使用items()方法获取字典的所有键值对,然后进行循环遍历。#遍历所有键值对print("水果价格表:")forfruit,priceinfruit_prices.items():print(f"{fruit}:{price}元/斤")#输出结果:#水果价格表:#苹果:8元/斤#香蕉:5元/斤#橙子:6元/斤#葡萄:12元/斤字典推导式中的循环04什么是字典推导式字典推导式(DictionaryComprehension)是Python中一种简洁创建字典的方法,它允许我们通过一个表达式快速生成字典,语法类似于列表推导式,但生成的是字典。#基本语法{key_expression:value_expressionforiteminiterable}{key_expression:value_expressionforiteminiterableifcondition}示例-1.基本字典推导式#将列表转换为字典numbers=[1,2,3,4,5]squared_dict={x:x**2forxinnumbers}print(squared_dict)#输出:{1:1,2:4,3:9,4:16,5:25}#将字符串长度作为值fruits=['苹果','香蕉','橙子','草莓']fruit_length={fruit:len(fruit)forfruitinfruits}print(fruit_length)#输出:{'苹果':2,'香蕉':2,'橙子':2,'草莓':2}示例-2.带条件的字典推导式#只包含偶数的平方numbers=[1,2,3,4,5,6,7,8]even_squares={x:x**2forxinnumbersifx%2==0}print(even_squares)#输出:{2:4,4:16,6:36,8:64}#筛选长度大于2的水果fruits=['苹果','梨','香蕉','橙子','莓']long_fruits={fruit:len(fruit)forfruitinfruitsiflen(fruit)>2}print(long_fruits)#输出:{'苹果':2,'香蕉':2,'橙子':2}示例-3.处理现有字典#现有字典fruit_prices={'苹果':8,'香蕉':5,'橙子':6,'葡萄':12}#所有水果打9折discount_prices={fruit:price*0.9forfruit,priceinfruit_prices.items()}print(discount_prices)#输出:{'苹果':7.2,'香蕉':4.5,'橙子':5.4,'葡萄':10.8}#筛选高价水果(价格>6)expensive_fruits={fruit:priceforfruit,priceinfruit_prices.items()ifprice>6}print(expensive_fruits)#输出:{'苹果':8,'葡萄':12}字典推导式的优势简洁性:用一行代码完成多行循环的工作可读性:意图明确,代码清晰性能:通常比普通循环更快功能性:可以轻松实现过滤、转换等操作字典推导式的注意事项方法:字典推导式中的循环使用字典推导式可以快速创建新字典或转换现有字典。#使用字典推导式创建新字典(所有水果打8折)discount_prices={fruit:price*0.8forfruit,priceinfruit_prices.items()}print("打折后价格:",discount_prices)#输出结果:#打折后价格:{'苹果':6.4,'香蕉':4.0,'橙子':4.8,'葡萄':9.6}#筛选价格高于6元的水果expensive_fruits={fruit:priceforfruit,priceinfruit_prices.items()ifprice>6}print("高价水果:",expensive_fruits)#输出结果:#高价水果:{'苹果':8,'葡萄':12}嵌套字典的循环05方法:嵌套字典的遍历对于嵌套字典,可以使用多层循环来遍历。#创建一个班级信息嵌套字典class_info={"一年级一班":{"班主任":"王老师","学生人数":35,"平均分":87.5},"二年级三班":{"班主任":"李老师","学生人数":32,"平均分":91.2},"三年级二班":{"班主任":"张老师","学生人数":30,"平均分":89.8}}#遍历嵌套字典forclass_name,infoinclass_info.items():print(f"\n{class_name}:")forkey,valueininfo.items():print(f"{key}:{value}")#输出结果:#一年级一班:#班主任:王老师#学生人数:35#平均分:87.5##二年级三班:#班主任:李老师#学生人数:32#平均分:91.2##三年级二班:#班主任:张老师#学生人数:30#平均分:89.8使用zip()同时遍历多个字典06方法:使用zip()同时遍历多个字典使用zip()函数可以同时遍历多个字典。#创建两个相关字典fruit_prices={"苹果":8,"香蕉":5,"橙子":6}fruit_stock={"苹果":50,"香蕉":80,"橙子":60}#同时遍历两个字典print("水果库存与价格:")for(fruit1,price),(fruit2,stock)inzip(fruit_prices.items(),fruit_stock.items()):print(f"{fruit1}:价格{price}元/斤,库存{stock}斤")#输出结果:#水果库存与价格:#苹果:价格8元/斤,库存50斤#香蕉:价格5元/斤,库存80斤#橙子:价格6元/斤,库存60斤方法总结方法语法用途遍历键forkeyindict:

forkey

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论