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

[Python 基础课程]元组

元组

简单来说,元组就像一个不可变的列表。这意味着一旦你创建了一个元组,你就不能再修改它的内容(添加、删除或更改元素)。元组使用圆括号 () 来定义,让我们看一些元组的例子:

# 一个包含整数的元组
numbers = (1, 2, 3, 4, 5)
# 输出: (1, 2, 3, 4, 5)
print(numbers)
# 输出: <class 'tuple'>
print(type(numbers))# 一个包含字符串的元组
fruits = ('apple', 'banana', 'cherry')
# 输出: ('apple', 'banana', 'cherry')
print(fruits)# 一个包含不同数据类型的元组
mixed = ('hello', 10, 3.14, True)
# 输出: ('hello', 10, 3.14, True)
print(mixed)# 一个包含单个元素的元组 (注意逗号)
single_element = ('python',)
# 输出: ('python',)
print(single_element)
# 输出: <class 'tuple'>
print(type(single_element))# 一个空元组
empty_tuple = ()
# 输出: ()
print(empty_tuple)

注意:

  • 当创建一个只包含一个元素的元组时,必须在该元素后面添加一个逗号 ,,这是为了区分它和用圆括号包裹的单个值
  • 空元组可以用一对空的圆括号 () 来表示

与列表类似,元组也具有以下特性:

  1. 有序性 (Ordered): 元组中的元素是有序的,它们会按照你定义的顺序存储,并且这个顺序不会改变。这意味着你可以通过索引来访问元组中的元素
  2. 允许重复元素 (Allows Duplicates): 元组中可以包含值相同的元素

索引

和列表一样,元组也支持索引、切片。

使用索引的例子:

my_tuple = ('a', 'b', 'c', 'd')
# 输出: a
print(my_tuple[0])
# 输出: c
print(my_tuple[2])
# 输出最后一个元素: d
print(my_tuple[-1])

使用切片的例子:

my_tuple = ('p', 'y', 't', 'h', 'o', 'n')
# 输出: ('y', 't', 'h')
print(my_tuple[1:4])
# 输出: ('p', 'y', 't')
print(my_tuple[:3])
# 输出: ('t', 'h', 'o', 'n')
print(my_tuple[2:])
# 输出: ('p', 'y', 't', 'h', 'o', 'n') (复制整个元组)
print(my_tuple[:])

元组的不可变性

元组最关键的特性就是它的不可变性 (Immutable)。一旦创建,你就无法修改元组中的任何元素。这意味着你不能:

  1. 修改元素的值:my_tuple[0] = 'z' (会引发 TypeError)
  2. 添加新的元素:my_tuple.append('e') (元组没有 append() 方法)
  3. 删除已有的元素:del my_tuple[1] (会引发 TypeError)
# 定义一个元组
my_tuple = (1, 2, 3, 'a', 'b')# 尝试修改元组中的一个元素
# 下面这行代码会引发 TypeError
my_tuple[0] = 10

http://www.dtcms.com/a/278225.html

相关文章:

  • HashMap 和 ConcurrentHashMap 的区别
  • JAVA学习笔记 JAVA开发环境部署-001
  • 【Datawhale夏令营】用AI做带货视频评论分析
  • Origin自带的悬浮尺子,Screen Ruler的最佳平替
  • C# 接口(接口可以继承接口)
  • 终极剖析HashMap:数据结构、哈希冲突与解决方案全解
  • 【面板数据】上市公司诉讼风险、诉讼次数等数据集(2007-2023年)
  • 【LeetCode100】--- 4.移动零【复习回顾】
  • 剑指offer58_和为S的连续正数序列
  • 深入理解 LangChain:AI 应用开发的全新范式
  • 人工智能到底是什么?揭开 AI 的神秘面纱
  • Spring @Autowired:依赖注入的核心奥秘
  • markdown-it-mathjax3-pro —— 新一代 Markdown 数学公式渲染插件
  • 代码精进之路
  • NumPy 中 np.c_ 的用法解析
  • Prometheus 第一篇:快速上手
  • 哪些行业的“反内卷”前景更好?
  • DL00454-深度学习牲畜资产管理圈养生猪行为识别含数据集
  • Docker搭建Redis哨兵集群
  • 代码部落 20250713 CSP-S复赛 模拟赛
  • Windows上使用配置Claude Code教程
  • 软件文档体系深度解析:工程视角下的文档架构与治理
  • 知识图谱构建简单分享
  • Task-driven Image Fusion with Learnable Fusion Loss
  • 嵌入式固件 .pkg 打包流程
  • DNS解析过程和nmap端口扫描
  • 大模型之Langchain篇(二)——RAG
  • C语言:流程控制
  • 前四天综合总结
  • 嵌入式 Linux开发环境构建之安装 SSH 软件