Python中元组(tuple)的详细使用

article/2025/8/17 21:38:09

文章目录

  • 前言
  • 一、元组的创建
    • 1.使用圆括号()
    • 2.使用tuple()函数
  • 二、元组元素的访问
    • 1.使用索引
    • 2. 使用切片
  • 三、元组的修改
    • 1.更改元组元素值
      • (1)元组->列表->修改->元组
      • (2)重新赋值
      • (3)更改元组中可变数据的元素值
    • 2.连接、重复元组
  • 四、元组的删除
  • 五、元组的其他操作
    • 1.元组的一维遍历和二维遍历
    • 2.判断元素是否存在
    • 3.元组的内置函数
      • (1)len()、max()、min()、count()函数
      • (2)index()函数
  • 六、元组和列表的区别

前言

元组是Python中的有序序列,元素不可更改。一旦创建了元组,就无法对其元素进行添加、删除、修改、排序等操作,也意味着元组是安全的。

一、元组的创建

1.使用圆括号()

  • 每个元素使用逗号间隔。
  • 在Python中,用逗号隔开的无其他标识的组合默认是元组。
  • 若创建只含一个元素的元组,需要在元素后面加上一个逗号,否则认定为该元素的数据类型,当作数学中的小括号来计算。
  • 同一元组中,元素的数据类型可以相同,也可以不同。
t = 'a','b','c'#仅用逗号隔开,无其他标识的组合默认是元组
print(type(t))
print(t,end='\n\n')t1 = ()#创建空元组t1
print(type(t1))
print(t1,end='\n\n')t2 = ('banana')#仅有一个数据
t3 = ('banana',)#一个数据+一个逗号
print(type(t2),type(t3),sep=',')#t2被认定为该数据的数据类型,t3被认定为元组
print(t2,t3,sep=',')t4 = ('orange',2,['english','launch'])#不同元素类型组成的元组
print(t4)

运行结果如下:
圆括号()创建元组

2.使用tuple()函数

如果不传入任何数据,则创建一个空元组;如果创建包含数据的元组,该数据必须是可迭代类型,相当于将该可迭代类型的数据转换成元组。

t1 = tuple()#创建空元组t1
print(t1)
t2 = tuple(['english','launch'])#列表为可迭代类型
print(t2)
t3 = tuple('python')#字符串为可迭代类型
print(t3)

运行结果如下:
tuple()函数创建元组

二、元组元素的访问

1.使用索引

t1 = (('chinese',2,[1,2,3]),'math','english')
print(t1[2])#访问索引为2的元素,正数下标从0开始
print(t1[-2])#访问索引为-2的元素,负数下标从-1开始
print(t1[0][2])#访问二维元组第一行第二列的元素

运行结果如下:
使用索引

2. 使用切片

t1 = ('t','u','p','l','e',1)
print(t1[::])#访问整个元组的元素
print(t1[1:5:2])#访问1-4之间,步长为2的元素

运行结果如下:
使用切片

三、元组的修改

元组的元素我们不可以进行修改,但是可以对元组本身进行连接、重复等操作。

1.更改元组元素值

(1)元组->列表->修改->元组

t1 = ('tomato','potato','cucumber')
print(t1)
l1 = list(t1)#将元组转换成列表
l1[1] = 'eggplant'#更改列表的元素值
t1 = tuple(l1)#将列表转换成元组
print(t1)

运行结果如下:
转换成列表来修改

(2)重新赋值

t1 = ('data structure','computer network')
print(t1)
t1 = ('computer organization','operating system')#重新赋值,t1指向新的内存地址
print(t1)

运行结果如下:
重新赋值

(3)更改元组中可变数据的元素值

当元组的元素是一个可以改变的数据类型,则元组该元素的值可以修改。元组的"不变"是元组中的每个元素指向不变,即地址不变,但是该地址的内容可以改变。

t1 = ('chinese','math',['tomato','potato'])
print(t1,id(t1[2]))
t1[2][1] = 'strawberry'#更改元组中列表的元素值
print(t1,id(t1[2]))

运行结果如下:
更改元组中列表的元素值

2.连接、重复元组

t1 = ('A','b','c')
t2 = (1,2,3)
t3 = t1 + t2#连接元组,返回新元组给t3
print(t3)
t4 = t1 * 3#重复元组,返回新元组给t4
print(t4)

运行结果如下:
连接、重复元组

四、元组的删除

元组的元素值不可以被删除,但是元组本身可以通过del语句删除。若再次输出元组,输出变量会有NameError的异常。因为这个元组已经被删除,不存在了。

t1 = ('abc','def',123)
print(t1)
del t1
print(t1)

运行结果如下:
删除元组

五、元组的其他操作

1.元组的一维遍历和二维遍历

t1 = ('rhino','elephant','giraffe')
for i in t1:#一维元组遍历,元组符合可迭代类型print(i)
print()for i in t1:#二维元组遍历,一层二层均为可迭代类型for j in i:print(j,end=' ')print()

运行结果如下:
元组一维二维遍历

2.判断元素是否存在

t1 = ('rhino','elephant','giraffe')
print('zoo' in t1)#判断是否存在
print('giraffe' in t1)
print('orange' not in t1)#判断是否不存在

运行结果如下:
判断元素是否存在

3.元组的内置函数

(1)len()、max()、min()、count()函数

t1 = ('out','in','at','on','above','at')
print('元组长度为',len(t1))#计算元组中元素的个数
print('元素最大值为',max(t1))#返回元组中元素的最大值
print('元素最小值为',min(t1))#返回元组中元素最小值
print('"at"出现次数为',t1.count('at'))#计算某个元素在元组中出现的次数

运行结果如下:
内置函数

(2)index()函数

该函数查找元组中某个元素的索引。它可以有一个参数,也可以有三个参数,指定查找范围。当存在多个该元素时,返回第一个元素出现的位置。若元素不在元组中,无索引,则程序报错。
语法格式:

n = tuple.index(value,start,stop)
变量 元组名		元素值,起点,终点

举例:

t1 = ('out','in','at','on','above','at')
print('"in"的索引为',t1.index('in'))#无指定范围,返回第一次出现的下标
print('"at"在1-5内的索引为',t1.index('at',1,6))#指定范围为1-5,左闭右开的区间。
print('"over"的索引为',t1.index('over'))#元素不在元组中,报错

运行结果如下:
index()函数

六、元组和列表的区别

查看上一篇文章关于Python中列表的详细使用,我们可以很清楚地知道:

  • 列表是可变的,可以改变元素且更改长度(元素个数)。元组是不可变的,一旦创建,元素无法改变。
  • 因为元组是不可变的,所以使用元组可以保护数据不被意外修改。
  • 如果你的数据集合需要修改,那么使用列表;如果不需要修改且希望提高效率,则使用元组。
  • 元组的性能速度比列表更有效率。1.通常情况下,一个变量不再被使用时,Python会将它的内存回收,并且返还给操作系统。但是像元组这类的静态变量,若不再被使用并且所占空间不大,Python不会回收内存,而是缓存这部分内存。因此若后期需要相同大小的元组,我们不需要再申请内存,而是直接分配之前缓存的内存。2.元组比列表少占用 16 个字节。列表是动态的,需要存储指针来指向对应的元素(占用 8 个字节);元素是可变的,需要额外存储已经分配的长度大小(占用 8 个字节)。元组长度大小固定,且存储元素不可变,所以存储空间也是固定的。
  • 元组可以在映射(和集合的成员)中当做“键”使用,而列表不行。

http://www.hkcw.cn/article/UNObFFJwuG.shtml

相关文章

Python pyinstaller打包exe最完整教程

1 简介 python提供了多种方法用于将普通的*.py程序文件编译成exe文件(有时这里的“编译”也称作“打包”)。exe文件即可执行文件,打包后的*.exe应用不用依赖python环境,可以在他人的电脑上运行。 pyinstaller是一个第三方模块&a…

超详细JSON教程!那些Python中JSON的使用方式都在这里

博客主页:长风清留扬-CSDN博客系列专栏:Python基础专栏每天更新大数据相关方面的技术,分享自己的实战工作经验和学习总结,尽量帮助大家解决更多问题和学习更多新知识,欢迎评论区分享自己的看法感谢大家点赞&#x1f44…

python所有版本下载安装教程,python3.8下载安装教程,python旧版本下载安装教程,python环境变量配置

python3.8虽然已经很旧了,但却是使用人数最多,最稳定的版本,先说3.8,再说其他所有版本 1、网页搜索python380或python3.8 或搜索https://www.python.org/downloads/release/python-380/ 或使用下面超链接:Python Relea…

Python Selenium 完全指南:从入门到精通

Python Selenium 完全指南:从入门到精通 📚 目录 环境准备与基础入门元素定位与交互操作等待机制与异常处理面向对象封装与框架设计进阶技巧与最佳实践性能优化与调试技巧实战案例分析 环境准备与基础入门 1. 安装 Selenium 与浏览器驱动 安装 Selen…

人工智能与机器学习:Python从零实现性回归模型

🧠 向所有学习者致敬! “学习不是装满一桶水,而是点燃一把火。” —— 叶芝 我的博客主页: https://lizheng.blog.csdn.net 🌐 欢迎点击加入AI人工智能社区! 🚀 让我们一起努力,共创AI未来! 🚀 前言 在 AI 的热潮中,很容易忽视那些让它得以实现的基础数学和技…

【Pytorch安装】深度学习环境配置详细教程!(Pytorch GPU和CPU版本 Python,Anaconda3 和 Pycharm 的安装)

目录 一、前言 1、简介 2、准备 二、Python安装 1、下载安装包 (1)搜索官网 (2)下载最新版本 (3)选择其他版本下载 2、安装 (1)双击进入安装 (2)查…

【Python实战】——Python+Opencv是实现车牌自动识别

🍉CSDN小墨&晓末:https://blog.csdn.net/jd1813346972 个人介绍: 研一|统计学|干货分享          擅长Python、Matlab、R等主流编程软件          累计十余项国家级比赛奖项,参与研究经费10w、40w级横向 文…

PyCharm 创建第一个 Python 项目

PyCharm 启动的时候其实已经提供了很多快捷方式: 我们点击"新建脚本"这个按钮,PyCharm 就会帮我们创建一个 script.py 文件,并自动初始化代码和环境: 我们可以尝试修改脚本文件,并运行查看输出结果&#xff…

五子棋Python源代码

图形化界面 库:numpy,pygame 效果: 源代码: #调用pygame库 import pygame import sys #调用常用关键字常量 from pygame.locals import QUIT,KEYDOWN import numpy as np #初始化pygame pygame.init() #获取对显示系统的访问&a…

Ubantu 20.04 安装 Mujoco210、mujoco-py、gym及报错解决

1. 安装Mujoco 1.1 官网下载Mujoco210安装包 Mujoco2.1.0下载链接 选第一个 1.2 创建文件夹并解压安装包 mkdir ~/.mujoco创建好后,点击显示隐藏文件可以找到 找到刚刚下载的压缩包所在位置(一般在下载目录下),右键选择 在终…

CUDA重大更新:原生Python可直接编写高性能GPU程序

NVIDIA 在2025年GTC大会上宣布了一项具有里程碑意义的技术更新:CUDA并行计算平台正式支持原生Python编程。这一突破性进展将消除Python开发者进入GPU加速计算领域的主要技术壁垒,无需再依赖C/C语言作为中介。 此次更新意味着数千万Python开发者现在可以…

Python的pandas库基础知识(超详细教学)

目录 一、配置环境 二、序列和数据表 2.1 初始化 2.2 获取数值 2.3 获取索引 2.4 索引取内容 2.5 索引改变取值 2.6 字典生成序列 2.7 计算取值出现次数 2.8 数据表 2.9 数据表添加新变量 2.10 获取列名 2.11 根据列名获取数据 2.12 输出固定行 2.13 输出多行…

男子把矿泉水带到高原一觉醒来大变样 当地的水就没事

男子把矿泉水带到高原,一觉醒来大变样,当地的水就没事!矿泉水被带到高原后出现的物理变化主要与高原环境的气压和温度条件有关,具体表现如下:1.瓶体膨胀现象高原地区平均气压仅为平地的60%-70%,密封瓶装水在运输过程中因外部气压骤降,内部气体体积膨胀导致瓶身变形,可能…

年轻人,花1000多亿干这个!押注谷子经济

年轻人,花1000多亿干这个!押注谷子经济。“六一”前夕,义乌国际商贸城一区内,印着动漫主人公的巨幅海报已经换上,最新的盲盒、徽章以及各种周边好物被摆在了最显眼的位置。2000多家玩具批发商户汇聚于此,谷子浓度越来越高。“谷子”由英文“Goods”音译而来,这个词囊括了…

“端午躲好午,不愁没好运”怎么躲午? 五种方法保平安

“端午躲好午,不愁没好运”怎么躲午? 五种方法保平安!艾旗迎百福,蒲剑斩千邪。今年的端午节比往年早一些,大街小巷已经有很多售卖艾蒿的商贩。端午节是中国传统的四大佳节之一,有着悠久的历史和丰富的文化习俗。进入农历五月后,阳光变得炙热,雨水增多,这个时节是各种毒…

基于python合成100X100的透明背景图片和图标

一、实现思路 1. 加载图像 使用 Image.open() 加载图标图像。 Image.new() 创建一个新的透明背景图像。 2. 调整大小 使用 resize() 方法调整图标图像的大小,确保它不会超过背景图像的一半大小。这里使用 Image.Resampling.LANCZOS 作为过滤器&…

新能源电池壳冲压车间看板实施

车间漫游 这个厂区就一个车间,面积还好,但是被机器和仓库区的产品塞得满满当当。我观察车间布局,为了出货方便,仓库区就在大门旁,叉车到门口货车的转运很快速方便。到车间后,对接人还没来,我们…

秋招Day10 - JVM - 内存管理

JVM组织架构主要有三个部分:类加载器、运行时数据区和字节码执行引擎 类加载器:负责从文件系统、网络或其他来源加载class文件,将class文件中的二进制数据加载到内存中运行时数据区:运行时的数据存放的区域,分为方法区…

茅台经销商被罚后起诉市监局续:法院重审一审撤销处罚决定

“贵州茅台经销商被罚后起诉市监局”一案近日有了最新进展。澎湃新闻从当事人及其代理律师处了解到,贵州省都匀市人民法院日前对该案作出重审一审判决,认定案涉处罚决定适用法律错误、程序违法,决定撤销黔南州市场监督管理局此前作出的行政处罚决定。澎湃新闻此前报道,郭亮…

花生壳里塞冰淇淋卖28一个 真果壳制成引争议

花生壳里塞冰淇淋卖28一个 真果壳制成引争议!近日,一位女子发布视频称,在苏州一家餐厅遇到了价格高昂的冰淇淋。她提到,一份装在花生壳里的冰淇淋售价28元,分量却少得惊人。尽管服务员会帮忙切开,仪式感十足,但她认为并不值这个价格。记者随后走访了位于苏州市姑苏区美罗…