python数据类型之元组(不可变的数据类型)

Python元组详解:不可变数据类型的实用价值与常见坑 在编程语言中,数据结构的选择往往决定了代码的安全性与可维护性。Python作为最受欢迎的编程语言之一,其内置数据类型中,元组与列表常被并列提及。但两者本质不同:列表是可变序列,支持增删改;元组是不可变序列,一旦创建便无法修改。正是这种不可变性,使得元组在固定记录、函数多返回值、字典键等场景中具有天然优势,既能避免数据被意外篡改,又能作为可哈希对象参与集合运算。同时,元组的内存占用更小,性能更优,配合namedtuple还能获得字段名带来的可读性。理解元组的定位与使用边界,是写出稳健Python代码的重要一步 阅读详情

元组是什么

元组(tuple)是Python中一种内置的存储有序数据的结构。与列表类似,可以存储不同类型的数据。但是元组是不可以改变的,创建后不能再做任何的修改。元组的主要作用是作为参数传递给函数调用或者从函数调用那里获得参数时,保护其内容不被外部接口修改。

因为元组是不可变的数据类型,因此元组没有增删改查

元组和列表的区别

元组相对于列表的优势:
首先比列表的运算速度快,如果定义了一个常量集对象,并且需要在程序中不断地遍历它,则建议使用元组而不是列表。
其次,使用元组相当于为不需要修改的数据进行了“写保护” ,使得数据更安全。

元组的创建

(1)空元组的创建——tup = ()
(2)当元组中只有一个数据时——tuple = (1,)
必须用,隔开 。 因为不加逗号系统默不是元组,而是其他数据类型
(3)元组里包含可变数据类型,可以间接修改元组内容
例如:元组中含有列表时,可以修改元组之哦不过列表的值
tuple = ([1,2,3],4)
tuple[0].append(5) 将元组中下标为0的元素列表中添加5这个元素

元组的特性

(1)索引 切片
通或索引和切片来查看元组中的元素内容
tuple[3] :查看下标为3的元组的元素是什么
与列表的索引切片类似

(2)重复
tuple * 3 元组内容重复三次

(3)连接
将两个元组中的数据连接到一起
tuple1 = (1,2,4,5)
tuple + tuple1

(4)成员操作符
‘westos’ in tuple :元素westos再元组中
‘westos’ not in tuple:元素westos不再元组中

(5)for循环

for i in tuple:
    print(i)

元组与列表的相互转换

  • Python 内置的tuple()函数接收一个列表,可返回一个包含相同元素的元组。
  • 而 list() 函数接收一个元组返回一个列表。
  • 从元组与列表的性质来看,tuple()相当于冻结一个列表,而list()相当于冻结一个元组。

例如:分别从两个列表中取不相同的两个元素组合成元组类型元素的新列表
输入:print([(x, y) for x in [1, 2, 3] for y in [3, 1, 4] if x != y])
输出:[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]

元组的打包与解包

元组的打包:
输入:a = ‘q’,‘w’,‘e’,‘f’
输出:print(a)
结果:(‘q’, ‘w’, ‘e’, ‘f’)
元组的解包:
输入:a,b,c,d = ‘q’,‘w’,‘e’,‘f’
输出:print(a,b,c,d)
结果:q w e f

元组的基本操作

tup[i] 	求索引为i的元素
tup[i:j:k] 	切片求tup的位置索引为i~j~k的子元组
tup1 + tup2 	将 tup1与tup2连接
tup * 2 或者 2* tup 	将 tup复制2次
len(tup) 	求tup的长度
for <var> in tup 	对tup 元素循环
<expr> in tup 	查找 tup 是否存在<expr>,返回的值为布尔类型
del tup 	删除元组
max(tup) 	返回元组中最大的值
min(tup) 	返回元组中最小的值
元组(Tuple)是Python中的一种数据类型,它是一个有序且不可变的集合 元组是Python中的一种有序且不可变的数据类型。它可以包含多个元素,并且支持索引和切片操作。元组的不可变性和可哈希性使其在某些场景下比列表更适合使用。无论是作为字典的键、函数的返回值还是用于保护数据的完整性,元组都可以发挥重要的作用。希望本文对你理解和使用元组有所帮助! 阅读详情

相关推荐

ESP32-CAM与Thonny的完美搭配:从烧录到通信的完整流程

本文详细介绍了如何将ESP32-CAM与Thonny IDE完美结合,从固件烧录到通信测试的完整流程。通过硬件连接、MicroPython固件烧录、Thonny环境配置以及摄像头功能开发等步骤,帮助开发者快速搭建高效的物联网开发环境,实现图像采集与无线通信功能。

tomato的博客 1122

python中元组不可变的解释

首先看关于元组的两个定义: 1.元组一旦被创建,它的元素就不可更改。 2.元组中可以存储列表、元组等任何类型的可变数据。 也就是,不可变的元组里

qq_42720183的博客 6196

1.triton镜像使用

1)拉取镜像2)启动容器指定模型仓库时可以执行server下的./fetch_model.sh,见2.2部分GPU版本的启动CPU版本的启动区别只在于--gpus=1这个参数注意:docker19.03之前的版本使用gpu要指定显卡硬件名,docker19.03之后的需要安装nvidia-container-toolkit或nvidia-container-runtime安装之后要重启docker查看gpus参数是否安装成功重新执行我遇到了如下错误先使用非GPU版本的。

天启的博客 2077

【Python】元组之不可修改性原理详解

初学者经常会走入一个误区,

扶摇直上 5612

Python实战:ERA5风场数据区域提取与风向合成可视化全流程解析

本文详细解析了使用Python处理ERA5风场数据的完整流程,包括NC文件读取、特定区域数据提取、u/v分量合成风向风速的计算,以及利用Matplotlib进行风场时空演变可视化。内容涵盖从环境搭建、数据获取到高级绘图与性能优化的实战经验,为气象数据分析、风能评估及气候研究提供了一套清晰、可操作的技术指南。

swift5iosmith的博客 301

在QTableWidget中添加支持多选的QComboBox并显示

定义自定义表格项,主要用于显示复选框自定义的多选ComboBox类自定义委托类,用于表格中的多选ComboBox代码展示如下。

YUyang0304的博客 2782

Python(六十九)为什么要将元组设计成不可变序列

❤️ 专栏简介:本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中,我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。☀️ 专栏适用人群 :本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无论你是学生、职场人士还是对编程感兴趣的爱好者,都能从中受益。跟着我的学习笔记一起学习python吧。

AnChenliang_1002的博客 504

基于STM32设计的盲人智能导盲杖

本设计基于STM32单片机,开发了一种面向视障人群的智能导盲杖系统。系统以STM32F103C8T6为核心控制器,集成了超声波测距、语音提示、环境光检测、GPS定位及4G通信等多种功能模块。

642

元组不可变,你真的确定吗?有了列表,元组存在的意义又是什么?【一文搞懂】

一、前言 好好学过几天python的小伙伴肯定知道,python有一种数据类型叫元组! 它与列表很相似,元组用小括号表示(1,2),列表用方括号表示[1,2] 但元组与列表最重要的区别就在于元组一经定义就不能改变其内容! 类似下面的代码执行的话会直接报错: a=(1,2) a[1]=3 print(a) 报错信息 但元组中的内容真的是不可改变的吗? 下面的这段代码可能会让你心生疑惑 a = (1, {'key': 1}) a[1]['key'] = 2 print(a) 输出结果: 这结果不是

曲鸟 1万+

[QMT量化交易小白入门]-七十三、主力资金动向:板块与个股资金流数据API(量化python代码解析)

本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。

木头大左的博客 1115

ofd转pdf报错:org.ofdrw.reader.ZipUtil.unZipFileByApacheCommonCompress【已解决】

ofd转pdf报错:java.lang.NoClassDefFoundError:org/apache/commons/io/function/IOIterator at org.ofdrw.reader.ZipUtil.unZipFileByApacheCommonCompress,java.lang.NoSuchMethodError:org.apache.commons.compress.archivers.zip.ZipArchiveInputStream.getNextEntry()

黄团团的个人博客 1283

Python不可变对象元组(tuple)详解

概述 元组和列表很相似,不过元组是不能在原处改变的对象,这点性质和字符串一致,虽然元组不支持任何方法调用,但是元组具有列表的大多数属性,以下是元组的一些特性。 支持索引和切片 既可以通过索引和切片读取元组内的数据 固定长度 由于元组为不可变的序列,所以是不能在生成一个拷贝的情况下进行增删的 任意嵌套 即元组和列表、字典都支持其他的复合对象,比如其他的元组,字典,列表等 常见使用示例 一些基础定...

weixin_33935505的博客 667

分布式系统中的“无状态”和“有状态”详解

有状态服务,即服务端需要记录每次会话的客户端信息,从而识别客户端身份,根据用户身份进行请求的处理,典型的设计如 tomcat 中的 session。例如登录:用户登录后,我们把登录者的信息保存在服务端 session 中,并且给用户一个 cookie 值,记录对应的 session。然后下次请求,用户携带 cookie 值来,我们就能识别到对应 session,从而找到用户的信息。

AI天才研究院 2万+

Python数据类型比较(列表,字典,集合,元组),可变,不可变,几种对比

数据类型 不可变数据类型:字符串,整数,浮点,布尔,元组 可变数据类型:列表 字典 集合 序列: 列表,字符串,元组,集合,字典 有序序列:列表,字符串,元组(有序功能特点:索引 遍历 切片) 无序序列:集合,字典 一. 列表 建立 方式一: 列表名=list(元素) 方式二: 列表名=[ ] 增 .append:在列表末尾追加新的元素 列表名.append(新元素)...

m0_46266065的博客 5110

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

python中的可变数据类型有列表和元组_python的可变和不可变数据类型

不可变数据类型python中不可变数据类型的定义为:当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改变,就称不可变数据类型,包括:int(整型)、string(字符串)、tuple(元组)整型首先我们来看一下整型为什么是不可变数据类型。给一个变量x赋值,然后改变这个x的值,输出前后两次的内存地址id和数据类型typeid():获取对象的内存地址type():当只有一个参数的时候...

weixin_39890543的博客 1429

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

python数据类型-3-容器类型-元组 元组真的不可变么?

在python数据类型系列文章中已经介绍了 基础数据类型,容器类型 列表,这篇文章我们来介绍容器类型中的另一类型 元组(tuple)

Lookontime的博客 785

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

python中的元组字符串整数浮点数都是不可变的数据类型,数据类型的可变与不可变...

python 中的数据类型根据底层内存机制分为可变和不可变两种。不可变数据类型: 当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改变,对于这种数据类型,就称不可变数据类型。可变数据类型:当该数据类型的对应变量的值发生了改变,那么它对应的内存地址不发生改变,对于这种数据类型,就称可变数据类型。基本数据类型中可变类型有列表,集合和字典,其他:字符串、整数、浮点数、复数、元组、集合为...

weixin_34795681的博客 1041

python中的元组字符串整数浮点数都是不可变的数据类型_python编程(6)--不可变数据类型...

​什么是不可变数据类型?数据类型是指一种数据的组织形式,也就是我们所说的类或者说对象。我们已经知道在Python里“一切皆为对象,没有赋值只有引用”,数据类型的不可变,是指我们不能改变对象的值,如果我们想改变它只能创建一个新的对象然后引用这个新对象。举个例子,int(整数)是不可变的数据类型,我们进行如下操作a=1#创建一个 int 对象 aprint(id(a))...

weixin_39968861的博客 863

Python元组(tuple)一种不可变的有序数据类型的使用

元组的元素可以是不同的数据类型,如整数、浮点数、字符串等,并使用逗号进行分隔。元组的原理是使用内存中的连续空间来存储元素,通过索引进行访问。这两种方式都可以实现遍历元组的功能,按照索引顺序逐个访问元组中的元素并进行操作。需要注意的是,元组的不可变性并不代表元组中的元素本身是不可变的,如果元组中的元素是可变对象(如列表),则可以修改可变对象的内容。元组是不可变的数据类型,所以没有可以直接修改元组的函数。修改元组中的元素是无法实现的,但可以通过元组拼接或切片生成新的元组来修改元组的内容。

captain 1317

python 数据类型 元组tuple(不可变)

元组: tuple    元组是不可改变的序列,同List一样可以存放任意类型的元素    表示方法:       用小括号()括起来, 单个元素括起来后加逗号(,)       区分单个对象还是元组    创建空元组的字面值:     t = ()    创建非空元组的字面值     t = 200     t = (20, )     t = (1, 2, 3)     t = 100, 20...

Firtslei的博客 1164

Python 0基础学习 数据类型--不可变的元组

在Python中,最基本的数据结构为序列(sequence)。序列中的每个元素都有编号,即其位置或索引,其中第一个元素的索引为0,第二个元素的索引为1,依此类推。在有些编程语言中,从1开始给序列中的元素编号,但从0开始指出相对于序列开头的偏移量。 最常见的序列是列表和元组,另外还有字符串。 本小节简单介绍元组。元组()与列表[]的区别是不可修改,还有就是他俩名字不一样,还有就是一个用(),一个用[...

weixin_43570089的博客 208

python中的可变数据类型有列表和元组_python中不可变数据类型和可变数据类型

在学习python过程中我们一定会遇到不可变数据类型和可变数据类型。1.名词解释以下所有的内容都是基于内存地址来说的。不可变数据类型: 当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改变,对于这种数据类型,就称不可变数据类型。可变数据类型 :当该数据类型的对应变量的值发生了改变,那么它对应的内存地址不发生改变,对于这种数据类型,就称可变数据类型。总结:不可变数据类型更改后地址发...

weixin_39671405的博客 1266

Python不可变类型之元组tuple

元组是有序的且不可更改的集合 ,用 () 表示,元组的元素无法修改静态数组,不可变,元组内部数据建立就不可修改元组缓存于python的运行时的环境,使用元组无需访问内核去分配内存元组可以拼接元组,转换类型去增删改查支持切片元组不可修改,安全可读、速度快可以存多个值 有序,依赖索引取值不可变类型—>可 hash 类型​。

m0_68021259的博客 468

可变数据类型与不可变数据类型

一、什么是可变类型与不可变类型? 可变数据类型 :当该数据类型的对应变量的值发生了改变,那么它对应的内存地址不发生改变,对于这种数据类型,就称可变数据类型。 不可变数据类型: 当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改变,对于这种数据类型,就称不可变数据类型。 二、数据类型分类 2.1、整型 数据发生改变后,变量的内存地址发生了改变,所以整型是不可变数据类型 2.2、字符串 当数据发生改变后,变量的内存地址发生了改变,所以字符串就是不可变数据类型。 2.3、元组 元组被称为只

yuhao_的博客 8037

31. Python数据类型之元组

元组主要由3部分构成: 1. 英文圆括号`( )` 2. 元组元素 3. 元素之间用英文逗号`,`隔开

weixin_63986098的博客 1222

python list是不可变的数据类型吗_python中不可变数据类型和可变数据类型

1.名词解释以下所有的内容都是基于内存地址来说的。不可变数据类型: 当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改变,对于这种数据类型,就称不可变数据类型。可变数据类型 :当该数据类型的对应变量的值发生了改变,那么它对应的内存地址不发生改变,对于这种数据类型,就称可变数据类型。总结:不可变数据类型更改后地址发生改变,可变数据类型更改地址不发生改变2.数据类型分类在pyt...

weixin_42319436的博客 7820
上一篇: python之列表
下一篇: python数据类型之字典
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值