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

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

相关推荐
AI 嗯啦24 分钟前
SQL详细语法教程(三)mysql的函数知识
android·开发语言·数据库·python·sql·mysql
databook33 分钟前
把数学对象画出来:Manim Mobject类库速查手册
python·数学·动效
失散131 小时前
深度学习——02 PyTorch
人工智能·pytorch·深度学习
图灵学术计算机论文辅导1 小时前
傅里叶变换+attention机制,深耕深度学习领域
人工智能·python·深度学习·计算机网络·考研·机器学习·计算机视觉
ruleslol1 小时前
python30-正则表达式
python·正则表达式
vincent_hahaha2 小时前
关于simplifyweibo_4_moods数据集的分类问题
python
三年呀3 小时前
**标题:发散创新之力,探索隐私计算的未来**隐私计算,作为当下数字化时代的热门话题,正受
python
重启的码农3 小时前
ggml 介绍(4) 计算图 (ggml_cgraph)
c++·人工智能
重启的码农3 小时前
ggml 介绍(5) GGUF 上下文 (gguf_context)
c++·人工智能·神经网络
R-G-B3 小时前
OpenCV Python——报错AttributeError: module ‘cv2‘ has no attribute ‘bgsegm‘,解决办法
人工智能·python·opencv·opencv python·attributeerror·module ‘cv2‘·no attribute