苦练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,) 注意逗号
  • 访问:索引、切片、拆包
  • 场景:固定数据、函数多值返回、字典键、性能敏感区
  • 技巧:拆包、交换、嵌套

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

相关推荐
DeepReinforce3 分钟前
开源的大语言模型(LLM)应用开发平台Dify
人工智能·语言模型·开源
AI妈妈手把手8 分钟前
【深度学习框架终极PK】TensorFlow/PyTorch/MindSpore深度解析!选对框架效率翻倍
人工智能·pytorch·python·深度学习·tensorflow·mindspore·ai选型指南
火山引擎开发者社区12 分钟前
Prompt Engineering 快速入门+实战案例
人工智能·prompt
种子q_q19 分钟前
面试官:什么是Spring的三级缓存机制
后端·面试
YangYang9YangYan27 分钟前
数学金融与金融工程:学科差异与选择指南
人工智能·金融
泡芙萝莉酱28 分钟前
世界各国和地区ICRG政治经济金融综合风险指标数据(1984-2023年)-实证数据
大数据·人工智能·深度学习·数据挖掘·数据分析·数据统计·实证数据
说私域31 分钟前
共享模式、社群与开源链动2+1模式AI智能名片S2B2C商城小程序的协同发展研究
人工智能·小程序
柏峰电子35 分钟前
太阳辐射监测站:洞察太阳能量的科技之眼
人工智能
weixin_470880261 小时前
行为型设计模式:解释器模式
设计模式·面试·解释器模式·代码规范·个人提升
苇柠1 小时前
Java数组补充v2
java·python·排序算法