一、Python 字典(dict)
1. 字典存储形式与核心特点
字典是Python中专属的键值对数据容器,就像我们的身份证:姓名:身份证号,一一对应,专门用来存储具有对应关系的数据。
核心特点:
以
key: value(键:值)形式存储数据key(键)唯一不重复,value(值)可以重复、随意修改
字典整体是可变数据类型,支持增删改查
可运行代码示例
# 定义字典:学生姓名:分数 stu_dict = {"王林": 675, "李慕婉": 608, "许立国": 478} print(stu_dict) # 输出:{'王林': 675, '李慕婉': 608, '许立国': 478}2. 字典定义与数据获取语法
(1)字典定义
使用大括号{}定义,内部数据全部是键:值格式,多个键值对用逗号分隔。
(2)根据key获取value
字典没有下标索引,只能通过key(键)获取对应的值。
可运行代码示例
# 定义字典 score_dict = {"语文": 90, "数学": 95, "英语": 88} # 根据key获取值 math_score = score_dict["数学"] print("数学成绩:", math_score) # 输出:数学成绩: 953. 字典重点注意事项(必考)
value无限制:值可以是任意数据类型(字符串、数字、列表、字典都可以)
key有限制:键必须是不可变类型!不能是 list、set、dict(可变类型),常用key:字符串、数字、元组
key唯一:如果key重复定义,后面的会覆盖前面的
无索引:不能用下标取值,只能用key取值
可运行代码示例(key重复覆盖)
# 重复key测试 test_dict = {"a": 10, "a": 20} print(test_dict) # 输出:{'a': 20} 后定义的覆盖先定义的
4. 字典常用增删改查操作
(1)新增数据
语法:字典[新key] = 新value,key不存在则新增
(2)修改数据
语法:字典[已有key] = 新value,key存在则修改对应值
(3)删除数据
两种方式:del 字典[key](直接删除)、字典.pop(key)(删除并返回被删除的值)
(4)查询数据
基础查询:字典[key]、字典.get(key)
批量查询:keys()获取所有键、values()获取所有值、items()获取所有键值对
可运行综合代码示例
dict1 = {"name": "张三", "age": 18} # 1.新增 dict1["gender"] = "男" print("新增后:", dict1) # 2.修改 dict1["age"] = 19 print("修改后:", dict1) # 3.删除 del dict1["gender"] name = dict1.pop("name") print("删除的值:", name) print("删除后字典:", dict1) # 4.查询 dict2 = {"语文":90, "数学":95} print("所有键:", dict2.keys()) print("所有值:", dict2.values()) print("所有键值对:", dict2.items())5. 字典遍历(for循环)
日常开发中,我们通过三个方法遍历字典,适配不同场景:
遍历keys():只拿所有键遍历values():只拿所有值遍历items():同时拿键和值(最常用)
可运行代码示例
stu_score = {"王林": 675, "李慕婉": 608} # 遍历所有key for k in stu_score.keys(): print("学生姓名:", k) # 遍历所有value for v in stu_score.values(): print("学生分数:", v) # 遍历所有键值对 for k, v in stu_score.items(): print(f"{k}的分数是:{v}")二、Python 五大数据容器总结对比
汇总字符串、列表、元组、集合、字典核心区别,新手直接背表格!
容器类型 | 有序性 | 重复元素 | 可变性 | 索引访问 | 切片操作 | 使用场景 |
|---|---|---|---|---|---|---|
字符串(str) | 有序 | 允许重复 | 不可变 | 支持 | 支持 | 存储文本信息 |
列表(list) | 有序 | 允许重复 | 可变 | 支持 | 支持 | 存储可修改、有序、可重复数据 |
元组(tuple) | 有序 | 允许重复 | 不可变 | 支持 | 支持 | 存储固定不变的数据 |
集合(set) | 无序 | 不允许重复 | 可变 | 不支持 | 不支持 | 去重、集合运算 |
字典(dict) | 有序(3.7+) | key不重复,value可重复 | 可变 | 按键访问,无下标索引 | 不支持 | 存储一一对应的关联数据 |
三、Python 函数基础
1. 函数概念
函数就是封装好、可重复使用、实现固定功能的代码块。作用:简化代码、减少重复代码、提高代码可读性!
2. 函数定义与调用语法
基础语法
# 定义函数 def 函数名(): 函数体代码 # 调用函数 函数名()可运行代码示例
# 定义一个打招呼函数 def say_hello(): print("Hello Python!") # 调用函数 say_hello() # 输出: Hello Python!3. 函数使用核心注意事项
必须先定义,后调用,顺序不能颠倒,否则程序报错
函数定义时,代码不会执行,只有调用函数时,函数体逻辑才会运行
函数靠缩进区分代码归属,缩进后的代码才属于函数体
4. 有参数、有返回值的函数
语法格式
# 定义有参数有返回值函数
def 函数名(参数1, 参数2...):
函数逻辑
return 返回值
# 调用函数,接收返回值
变量 = 函数名(实参1, 实参2...)
可运行代码示例
# 定义求和函数 def add_num(a, b): res = a + b return res # 调用函数 result = add_num(10, 20) print("两数之和:", result) # 输出:两数之和: 305. 函数多返回值
Python函数支持多个返回值,多个返回值用逗号分隔,默认以元组形式返回。
可运行代码示例
# 计算两数的和与差 def calc_num(a, b): sum_res = a + b sub_res = a - b # 返回多个值 return sum_res, sub_res s, d = calc_num(50, 20) print("和:", s, "差:", d) # 输出:和: 70 差: 306. 函数说明文档
写在函数内部的多行注释,用来解释函数功能、参数、返回值,方便自己和他人阅读代码。
可运行代码示例
def add_num(a, b): """ #求和函数 :param a: #第一个数字 :param b: #第二个数字 :return: #两个数字的和 """ return a + b # 查看函数文档 help(add_num)7. 函数嵌套调用
一个函数内部,调用另一个函数,就是函数嵌套调用。
可运行代码示例
def fun1(): print("我是函数1") def fun2(): # 嵌套调用fun1 fun1() print("我是函数2") fun2() # 输出:我是函数1 我是函数2四、课后练习题(巩固自测)
一、判断题(对的打√,错的打×)
1. 字典的key可以是列表类型。()
2. 字典的key重复时,前面的key值会覆盖后面的。()
3. 字典可以通过下标索引获取数据。()
4. Python函数可以有多个返回值。()
5. 函数定义后会立即执行,无需调用。()
二、选择题
1. 以下哪个不能作为字典的key?()
A. 字符串 B. 列表 C. 数字 D. 元组
2. 字典新增数据的正确操作是?()
A. dict.append() B. dict[key] = value C. dict.insert() D. dict.pop()
3. 想要同时获取字典的键和值,使用哪个方法?()
A. keys() B. values() C. items() D. get()
4. 关于函数说法错误的是?()
A. 函数可以封装重复代码 B. 必须先定义后调用 C. 函数不能嵌套调用 D. 函数支持参数和返回值
五、参考答案
一、判断题
1. ×(key必须是不可变类型,列表是可变类型)
2. ×(后定义的key覆盖先定义的)
3. ×(字典无索引,只能通过key取值)
4. √(支持多返回值)
5. ×(定义不执行,调用才执行)
二、选择题
1. B 2. B 3. C 4. C