前言为什么需要字典在编程中我们经常需要存储“键值对”形式的数据。比如学生的学号对应他的姓名商品名称对应它的价格城市名字对应它的邮政编码这种“一一对应”的关系用列表很难优雅地表达而字典Dictionary正是为此而生。字典是Python中一种非常强大且灵活的数据结构它以键值对的形式存储数据查询速度快使用起来像查通讯录一样自然。d { id:2233, name:赵云 } 删除指定键并且返回对应的值 r d.pop(id) print(r,d) 删除最后插入的键 返回键值对 d.popitem() print(d) 清空字典 d.clear() print(d) 添加一个键值对 d[age]18 print(d) 在字典最后插入一个键值对 没有值时值为None d.setdefault(id1,8) print(d) 在原有的字典上添加多个键值对 d.update({ gex:男, old:556 }) print(d) 直接获取一个键对应的值 如果存在则返回对应的值 不存在返回None如果有default,则返回默认值 rd.get(id1,1) print(r) 直接获取一个键对应的值 如果存在则返回 不存在返回None,如果defult存在返回默认值 print(d.get(id,5))一、什么是字典字典是Python中的一种内置数据类型用于存储键值对key-value pair。每个键key都映射到一个值value通过键可以快速访问对应的值。字典的特点无序性在Python 3.6之前字典是无序的3.7之后字典保持插入顺序但日常使用中我们不必依赖顺序。键唯一字典中的键必须是唯一的如果重复赋值后面的会覆盖前面的。键不可变键必须是不可变类型如字符串、数字、元组列表、字典等可变类型不能作为键。值任意值可以是任意类型的Python对象包括数字、字符串、列表、元组、甚至另一个字典。现实类比字典就像一本电话簿姓名键 → 电话号码值查找时直接翻到“张伟”那一页而不是一页一页从头找。二、字典的创建1. 使用花括号最常用text学生 {张三: 18, 李四: 20, 王五: 19}2. 使用 dict() 构造函数text商品 dict(苹果5.5, 香蕉3.2, 橙子4.8)注意这种写法中键不需要加引号会自动识别为字符串。3. 创建空字典text空字典 {} # 或 空字典 dict()三、字典的常用操作1. 访问值通过键来访问对应的值text年龄 学生[张三] # 返回 18如果键不存在会报KeyError错误。为了避免这种情况可以使用get()方法text年龄 学生.get(赵六) # 返回 None不会报错 年龄 学生.get(赵六, 0) # 如果键不存在返回默认值 02. 添加或修改键值对直接通过键赋值即可如果键存在则修改不存在则新增text学生[赵六] 22 # 新增 学生[张三] 19 # 修改覆盖3. 删除键值对使用del语句或pop()方法textdel 学生[张三] # 删除键张三 年龄 学生.pop(李四) # 删除并返回对应的值4. 遍历字典遍历所有键for 键 in 字典:遍历所有值for 值 in 字典.values():遍历所有键值对for 键, 值 in 字典.items():四、简单案例带你上手案例一学生成绩查询系统场景存储学生的姓名和分数实现根据姓名查询成绩的功能。实现思路创建一个字典键为学生姓名值为考试分数。定义一个查询函数输入姓名返回对应的分数如果找不到返回提示信息。示例描述字典内容{小明: 92, 小红: 88, 小刚: 76}查询 小红 → 返回 88查询 小亮 → 返回 该学生不存在案例二统计字符串中每个字符出现的次数场景给定一个字符串统计其中每个字符出现的次数。实现思路创建一个空字典。遍历字符串中的每一个字符。如果字符已在字典中将其对应的值加1否则将字符作为键值设为1。示例描述输入字符串hello→ 输出{h: 1, e: 1, l: 2, o: 1}案例三商品价格查询与折扣计算场景商店里有多件商品每件商品有对应的原价。现进行促销所有商品打八折请输出折后价。实现思路创建一个字典存储商品名称和原价。遍历字典计算每个商品的折后价存入新字典。输出新字典。示例描述原价字典{苹果: 10, 香蕉: 6, 牛奶: 15}折后字典{苹果: 8.0, 香蕉: 4.8, 牛奶: 12.0}案例四字典嵌套 —— 学生信息管理场景存储多个学生的详细信息包括姓名、年龄、班级、成绩等。实现思路用字典表示一个学生包含多个字段。用列表或字典将多个学生组织在一起。