苦练Python第23天:元组秘籍与妙用

苦练Python第23天:元组秘籍与妙用

前言

大家好,我是倔强青铜三 。是一名热情的软件工程师,我热衷于分享和传播IT技术,致力于通过我的知识和技能推动技术交流与创新,欢迎关注我,微信公众号:倔强青铜三。欢迎点赞、收藏、关注,一键三连!!!

欢迎来到《100天Python》第23天!

今天我们深入探索元组(tuple) ------Python 里列表的"不可变兄弟"。如果你已经玩转了列表,那么掌握元组只需十分钟,但何时使用它才是让代码更简洁、更安全、更高效的关键。让我们开卷!🐍


📦 今日知识清单

  • 元组是什么,与列表有何不同
  • 创建与访问元组的正确姿势
  • 何时该用元组而非列表
  • 真实场景案例
  • 元组黑科技:拆包、交换、多值返回

🧱 什么是元组?

元组 是一个有序不可变 的集合。

也就是说,你可以像列表一样索引,但创建后不能修改任何元素。

🔹 语法

python 复制代码
my_tuple = (1, 2, 3)

看起来和列表相似,只是用圆括号 ()代替方括号[]


🔍 元组 vs 列表

特性 列表 [] 元组 ()
可变性 ✅ 可变 ❌ 不可变
速度 略慢 ✅ 略快
是否可哈希
典型场景 动态数据 固定数据

🛠 创建元组

1. 基础写法

python 复制代码
person = ("Alice", 30, "Engineer")

2. 省略括号(Python 允许)

python 复制代码
coordinates = 10, 20

3. 单元素元组(必须带逗号!)

python 复制代码
single = (42,)        # ✅ 元组
not_a_tuple = (42)    # ❌ 只是整数

🎯 访问元素

索引与切片语法与列表一致:

python 复制代码
colors = ("red", "green", "blue")
print(colors[0])      # red
print(colors[-1])     # blue
print(colors[1:3])    # ('green', 'blue')

❌ 不可变特性

一旦创建,无法增删改:

python 复制代码
colors[0] = "yellow"
# TypeError: 'tuple' object does not support item assignment

✅ 何时使用元组

  • 固定数据集:如 (纬度, 经度)
  • 函数多值返回:优雅地一次返回多个结果
  • 字典键:仅可哈希类型可用
  • 性能优化:迭代速度略胜列表
  • 数据安全:防止误改

🧪 真实场景示例

1. 多值返回

python 复制代码
def get_user():
    return ("Alice", 25)

name, age = get_user()
print(name, age)     # Alice 25

2. 坐标存储

python 复制代码
point = (10.5, 20.3)

无需额外字段名,xy 含义天然对应。


3. 作为字典键

python 复制代码
location_data = {
    (28.6139, 77.2090): "Delhi",
    (40.7128, -74.0060): "New York"
}

列表不能充当键,而元组可以。


🪄 元组黑科技

1. 拆包赋值

python 复制代码
name, age, city = ("John", 30, "Paris")

2. 变量交换(Pythonic)

python 复制代码
a, b = 5, 10
a, b = b, a

3. 嵌套元组

python 复制代码
matrix = ((1, 2), (3, 4))
print(matrix[1][0])   # 3

✅ 速览总结

  • 元组:有序、不可变、轻量、安全
  • 创建:(item,) 注意逗号
  • 访问:索引、切片、拆包
  • 场景:固定数据、函数多值返回、字典键、性能敏感区
  • 技巧:拆包、交换、嵌套

最后感谢阅读!欢迎关注我,微信公众号倔强青铜三。欢迎点赞收藏关注,一键三连!!!

相关推荐
没有梦想的咸鱼185-1037-16634 分钟前
【遥感技术】从CNN到Transformer:基于PyTorch的遥感影像、无人机影像的地物分类、目标检测、语义分割和点云分类
pytorch·python·深度学习·机器学习·数据分析·cnn·transformer
whaosoft-14310 分钟前
51c视觉~合集2~目标跟踪
人工智能
钟爱蛋炒饭10 分钟前
基于深度学习神经网络协同过滤模型(NCF)的视频推荐系统
python·神经网络·机器学习
eqwaak010 分钟前
Python Pillow库详解:图像处理的瑞士军刀
开发语言·图像处理·python·语言模型·pillow
RE-190121 分钟前
制冷剂中表压对应温度值的获取(Selenium)
爬虫·python·selenium·jupyter·pandas·danfoss·reftools
cyyt24 分钟前
深度学习周报(9.15~9.21)
人工智能·深度学习·量子计算
测试老哥26 分钟前
Python+selenium自动化生成测试报告
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
ThreeAu.28 分钟前
2025年Web自动化测试与Selenium面试题收集:从基础到进阶的全方位解析
自动化测试·软件测试·selenium·测试工具·面试·web测试·测试开发工程师
Deepoch35 分钟前
Deepoc具身智能模型:为传统机器人注入“灵魂”,重塑建筑施工现场安全新范式
人工智能·科技·机器人·人机交互·具身智能
在未来等你1 小时前
Elasticsearch面试精讲 Day 20:集群监控与性能评估
大数据·分布式·elasticsearch·搜索引擎·面试