当前位置: 首页 > news >正文

Python数据类型 - 元组(Tuple)

在这里插入图片描述

Python数据类型 - 元组(Tuple)

1. 元组简介

元组是Python中的不可变序列,用于存储一组有序的元素。特点:

  • 用圆括号()定义,元素间用逗号分隔
  • 一旦创建,内容不可修改(但可以整体重新赋值)
  • 支持索引和切片操作
  • 可以包含任意数据类型

2. 创建元组

# 空元组
empty_tuple = ()

# 单元素元组(注意末尾的逗号)
single_tuple = (42,)  

# 多元素元组
colors = ('red', 'green', 'blue')
mixed = (1, 'hello', 3.14, True)

# 省略括号(自动转换为元组)
numbers = 1, 2, 3

3. 基本操作

访问元素

t = ('a', 'b', 'c', 'd')

print(t[0])    # 'a'(正向索引,从0开始)
print(t[-1])   # 'd'(负向索引,-1表示最后一个)

切片操作

print(t[1:3])   # ('b', 'c')
print(t[:2])    # ('a', 'b')
print(t[::2])   # ('a', 'c')(步长为2)

元组解包

point = (10, 20)
x, y = point    # x=10, y=20

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

4. 不可变性

元组创建后不能修改内容,尝试修改会报错:

t = (1, 2, 3)
t[0] = 5  # 报错:TypeError

但若元素本身是可变对象(如列表),其内容可以改变:

t = ([1, 2], [3, 4])
t[0].append(3)  # 允许,元组变为([1, 2, 3], [3, 4])

5. 常用方法

由于不可变,元组方法较少:

方法描述
count(x)返回元素x出现的次数
index(x)返回元素x第一次出现的索引
t = (1, 2, 2, 3)
print(t.count(2))  # 2
print(t.index(3))  # 3

6. 元组 vs 列表

特性元组列表
可变性不可变可变
语法()[]
性能更快稍慢
用途固定数据动态数据
方法

7. 应用场景

  • 存储不应被修改的数据
  • 字典的键(因为不可变)
  • 函数返回多个值时(本质是返回元组)
  • 提高程序性能(比列表更高效)

8. 高级技巧

命名元组

from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(11, y=22)
print(p.x, p.y)  # 11 22

元组拼接

t1 = (1, 2)
t2 = (3, 4)
combined = t1 + t2  # (1, 2, 3, 4)

乘法运算

triple = t1 * 3  # (1, 2, 1, 2, 1, 2)
http://www.dtcms.com/a/106426.html

相关文章:

  • 第四章:检索器(Retriever)设计:从向量到图谱
  • Windows 实战-evtx 文件分析--做题笔记
  • Qt中的数据解析--XML与JSON处理全攻略
  • 前端开发时的内存泄漏问题
  • 数据结构第6篇:手撕排序算法(插入、希尔、堆)
  • 【通用级联选择器回显与提交处理工具设计与实现】
  • 中和农信:让金融“活水”精准浇灌乡村沃土
  • RustDesk 开源远程桌面软件 (支持多端) + 中继服务器伺服器搭建 ( docker版本 ) 安装教程
  • windows使用Python调用7-Zip【按大小分组】压缩文件夹中所有文件
  • C# Winform 入门(3)之尺寸同比例缩放
  • 山东大学《多核平台下的并行计算》实验笔记
  • Mysql+Demo 获取当前日期时间的方式
  • 17查询文档的方式
  • CASAIM与哈尔滨电气集团达成战略合作,三维智能检测技术赋能电机零部件生产智造升级
  • 【DRAM存储器四十九】LPDDR5介绍--LPDDR5的低功耗技术之power down、deep sleep mode
  • ContextVars 在 FastAPI 中的使用
  • 最新26考研资料分享考研资料合集 百度网盘(仅供参考学习)
  • 逻辑漏洞之越权访问总结
  • LeetCode 2761 和等于目标值的质数对
  • Anywhere文章精读
  • c# 如何利用redis存储对象,并实现快速查询
  • 实时显示符合条件的完整宋词
  • 基于 DeepSeek 与天地图搭建创新地理信息应用
  • STM32F103低功耗模式深度解析:从理论到应用实践(上) | 零基础入门STM32第九十二步
  • 使用ctags+nvim自动更新标签文件
  • 基于springboot汽车租赁系统
  • 【百日精通JAVA | SQL篇 | 第二篇】数据库操作
  • K8S集群搭建 龙蜥8.9 Dashboard部署(2025年四月最新)
  • 云计算:数字化转型的核心引擎
  • 硬件工程师零基础入门教程(三)