大家好,零基础 Python 系统教程第 8 天更新! 昨天我们掌握元组、集合两种容器,今天学习 Python 最常用的映射容器 —— 字典 dict。日常开发里存储人物信息、商品数据、通讯录全部依赖字典,本节课完整覆盖字典定义、增删改查、三种遍历方式,配套分层练习题,新手看完就能上手写存储程序。
全部代码附带逐行注释,复制即可运行,文末完整课堂源码 + 习题解析一站式打包。
tuple () 有序、允许重复、元素不可修改;单元素必须加逗号;支持索引切片,不能增删改。t = (10, 20,)print(t[0])# t[0] = 99 # 报错,不可变
set {} 无序、自动去重、无下标;用于数据去重、交集 / 并集 / 差集运算;空集合必须用set(),{}代表空字典。s = {1,2,2,3}print(list(s)) # 去重转列表
key、value 使用硬性规则;keys/values/items 三种遍历方式,分清适用场景;字典和其他容器最大区别是键 key 与值 value 一一对应,不用下标查找,依靠 key 快速定位数据。 两条硬性规则一定要记牢:
key )唯一不能重复,重复定义会覆盖;只能用数字、字符串、元组这类不可变类型;value)无任何限制,列表、集合甚至另一个字典都可以存进去。定义格式 键值对结构 {key1:value1, key2:value2},空字典直接写{}。
# 基础字典student = {"name":"李四", "age":19, "gender":"男"}# 空字典empty_dict = {}# 错误:{}不是空集合# 空集合区分empty_set = set()
key 唯一:重复定义相同 key,后写的值覆盖前面;value 无任何限制:数字、字符串、列表、字典、集合均可;key 取值。# 重复键覆盖演示d = {"a":1, "a":99}print(d) # {'a':99}# 合法键 & 非法键演示ok_d = {(1,2):"坐标"} # 元组做键,合法# err_d = {[1,2]:"列表键"} # 列表可变,禁止作为键,报错
优先用.get(),不会因为找不到键直接崩溃;
info = {"name":"小明", "score":95}# 方式1:[key],键不存在直接报错print(info["name"])# print(info["height"]) # KeyError 报错# 方式2:.get() 安全推荐,无键返回None,可自定义默认值print(info.get("height")) # Noneprint(info.get("height", 170)) # 找不到返回170
dict[key]=值,不存在就新增,存在就覆盖;批量修改用update();只想新增不改动旧数据用setdefault();
person = {"name":"小红"}# 键不存在=新增person["age"] = 18# 键已存在=覆盖修改person["name"] = "小红红"# update 批量新增/修改person.update({"gender":"女", "score":92})# setdefault:只新增不修改原有值person.setdefault("age", 20) # age已存在,不变person.setdefault("class", "一班") # 不存在则新增print(person)
del 指定删除、pop 删除并返回值、popitem 删除最后一组、clear 清空全部。
book = {"title":"Python入门", "price":59, "author":"A"}# del 删除指定键del book["price"]# pop 删除并返回对应值res = book.pop("author")print("被删除的值:", res)# popitem 删除最后一组键值对(3.7+有序)book.popitem()# clear 清空全部键值,保留字典对象book.clear()print(book) # {}
.keys().values().items(),实际开发使用频率最高stu = {"name":"张三", "age":18, "score":90}# 1. 只遍历所有键(默认遍历键)for k in stu:print("键:", k)for k in stu.keys():print("键:", k)# 2. 只遍历所有值for v in stu.values():print("值:", v)# 3. 同时遍历键+值(开发最常用)for k, v in stu.items():print(f"键{k},对应值{v}")
存储一一对应属性:学生档案、通讯录、商品信息、程序配置参数;需要根据标识快速查找数据时优先用字典。
📖 往期历史笔记
Python 学习笔记|零基础第 1 天:Windows 系统完整安装教程 + 报错解决
Python 学习笔记| 第2天: Python Windows安装教程:VS Code 完整配置开发环境
Python零基础入门|第3天: Python变量、数据类型与输入输出
Python零基础入门| 第4天:字符串索引切片+列表完整增删改查
Python 零基础入门|第5天: for 循环与 range、break/continue
Python零基础入门 | 第7天: 元组、集合与循环控制,四大容器一次性理清
Python 零基础入门 |第9天:字符串全套操作 + 三种格式化输出实战
公众号福利 & 原创声明
✅ 回复【第8天源码】领取本章全套可运行源码 + 课后练习题
每节课都配套课后练习题与完整源码。代码报错、看不懂知识点,可在评论区粘贴问题,逐一解答!
欢迎关注梅雅达编程笔记,持续分享Python零基础学习内容
本文为梅雅达编程笔记原创零基础 Python 连载笔记
禁止私自搬运、二次转载,转发请标注来源。