Python 第二课
📝 博客 2/4:元组(Tuple) + 字典(Dict)
```markdown
Python 基础笔记(2):元组与字典
📅 来啦 | ⏱️ 阅读时间:10分钟
一、元组(Tuple):不可变的列表
元组用 () 表示,和列表很像,但创建后不能修改。
1.1 创建元组
```python
普通元组
point = (10, 20)
colors = (“红”, “绿”, “蓝”)
单元素元组(必须有逗号!)
single = (30,) # 注意这个逗号
空元组
empty = ()
括号可以省略
no_parentheses = 1, 2, 3 # 也是元组
1.2 元组解包:一次性赋值
这是元组最实用的功能!
python
编辑
基本解包
point = (10, 20)
x, y = point # x=10, y=20
函数返回多个值
def get_position():
return 100, 200 # 实际返回元组
x, y = get_position() # 直接解包
交换变量(经典技巧!)
a, b = 1, 2
a, b = b, a # a=2, b=1
高级解包
first, *middle, last = [1, 2, 3, 4, 5]
first=1, middle=[2,3,4], last=5
1.3 什么时候用元组?
python
编辑
✅ 适合用元组的场景
CONFIG = (‘production’, 8080, True) # 配置信息
rgb = (255, 128, 0) # 颜色值
location = (39.9, 116.4) # 坐标
❌ 需要修改时用列表
shopping_list = [‘苹果’, ‘香蕉’] # 可能会添加删除
✅ 记住:元组适合存不应该改变的数据
二、字典(Dict):键值对映射
字典用 {} 表示,存储键值对,查找速度超快。
2.1 创建字典
python
编辑
创建空字典
empty = {}
创建有内容的字典
contact = {‘豆包’: ‘111’, ‘千问’: ‘222’}
用 dict() 创建
person = dict(name=’小明’, age=18)
2.2 添加和更新
python
编辑
contact = {‘豆包’: ‘111’}
新增
contact[‘GPT’] = ‘333’ # {‘豆包’: ‘111’, ‘GPT’: ‘333’}
更新
contact[‘豆包’] = ‘999’ # 修改已存在的键
2.3 获取值(两种方式!)
python
编辑
contact = {‘豆包’: ‘111’, ‘千问’: ‘222’}
方式1:直接访问(键不存在会报错)
value = contact[‘微信’] # ❌ KeyError!
方式2:用 get()(推荐!不会报错)
value = contact.get(‘豆包’) # ‘111’
missing = contact.get(‘微信’) # None
default = contact.get(‘微信’, ‘未知’) # ‘未知’
2.4 删除元素
python
编辑
contact = {‘豆包’: ‘111’, ‘千问’: ‘222’, ‘GPT’: ‘333’}
删除并返回被删除的值
removed = contact.pop(‘豆包’) # ‘111’
删除最后插入的键值对
last = contact.popitem() # (‘GPT’, ‘333’)
直接删除
del contact[‘千问’]
清空整个字典
contact.clear()
2.5 遍历字典(三种方式)
python
编辑
contact = {‘豆包’: ‘111’, ‘千问’: ‘222’, ‘GPT’: ‘333’}
1. 只遍历键
for key in contact: # 或 contact.keys()
print(key)
2. 只遍历值
for value in contact.values():
print(value)
3. 同时遍历键和值(最常用!)
for key, value in contact.items():
print(f”{key}: {value}”)
2.6 字典推导式
python
编辑
列表转字典
keys = [‘a’, ‘b’, ‘c’]
values = [1, 2, 3]
my_dict = {k: v for k, v in zip(keys, values)}
{‘a’: 1, ‘b’: 2, ‘c’: 3}
字典过滤
original = {‘a’: 1, ‘b’: 2, ‘c’: 3}
filtered = {k: v for k, v in original.items() if v > 1}
{‘b’: 2, ‘c’: 3}
✅ 本篇小结
表格
容器 符号 可变性 典型用途
元组 () ❌ 不可变 配置、坐标
字典 {} ✅ 可变 键值对映射
表格
知识点 关键方法
元组解包 x, y = tuple
字典获取 get() 比 [] 更安全
字典遍历 .items() 最常用
字典推导式 {k: v for k, v in 序列}
