导航菜单

  • 1.Python介绍
  • 2.Python解释器
  • 3.安装Python
  • 4.VSCode开发Python
  • 5.print
  • 6.进制
  • 7.编码
  • 8.Unicode2UTF8
  • 9.整数类型
  • 10.字符串类型
  • 11.布尔类型
  • 12.变量与内存
  • 13.浮点类型
  • 14.注释
  • 15.if条件
  • 16.while循环
  • 17.运算符
  • 18.输入
  • 19.列表
  • 20.元组
  • 21.集合
  • 22.字典
  • 23.for循环
  • 20.1 元组是什么?
  • 20.2 创建元组
  • 20.3 访问元素
  • 20.4 常用操作
  • 20.5 元组解包
  • 20.6 列表 vs 元组:何时用哪个
  • 20.7 项目开发要点

20.1 元组是什么? #

元组是有序、不可变的集合,语法用圆括号 ()。创建后不能增删改元素

point = (10, 20)
config = ("localhost", 8080)

20.2 创建元组 #

empty = ()
nums = (1, 2, 3)
one = (42,)              # 单元素必须加逗号,否则是整数 42
also_one = 42,           # 等价,但不推荐省略括号

data = tuple([1, 2, 3])  # 从列表转换

20.3 访问元素 #

索引、切片与列表相同,但不能赋值修改:

fruits = ("apple", "banana", "orange")
print(fruits[0], fruits[-1])
print(fruits[1:3])       # ('banana', 'orange')

# fruits[0] = "x"      # TypeError:不可变

20.4 常用操作 #

t1 = (1, 2)
t2 = (3, 4)
print(t1 + t2)           # (1, 2, 3, 4)
print(2 in t1)           # False
print(len(t1))           # 2

元组只有 count()、index() 等少量方法,没有 append、sort。

t = (1, 2, 3, 2, 1)

print(t.count(2))  # 输出 2,表示2在元组中出现了2次
print(t.index(3))  # 输出 2,表示3第一次出现的位置索引为2

20.5 元组解包 #

项目里最高频的用法之一:

def get_status():
    return 200, "OK"     # 实际返回元组

code, message = get_status()
print(code, message)

# 交换变量
a, b = 10, 20
a, b = b, a

# 忽略部分返回值
name, _, city = ("Alice", 30, "Beijing")

20.6 列表 vs 元组:何时用哪个 #

场景 推荐
需要增删改、动态数据 列表 []
固定配置、常量 元组 ()
函数返回多个值 元组(自动)+ 解包
作为字典的键 元组(列表不可哈希)
# 元组可作 dict 的键
locations = {(31.2, 121.5): "上海"}

# 列表不能作键
# {[1, 2]: "x"}   # TypeError

20.7 项目开发要点 #

  1. 默认用列表存业务数据;只有确定「不应被改」时用元组
  2. 多返回值用解包:ok, data = fetch(),比取下标 result[0] 清晰
  3. 单元素元组别忘逗号:(item,) 不是 (item)
  4. 不要把元组当列表用:需要 append、排序就改用 list
  5. ORM / API 行数据:有时是 tuple,要改就 list(row) 再处理
  6. 常量配置:模块级 DB_CONFIG = ("host", 5432) 可防止误改(也可用 dataclass / 配置类,后续章节)
← 上一节 19.列表 下一节 21.集合 →

访问验证

请输入访问令牌

Token不正确,请重新输入