首页 > 编程语言 >Python教程(10)——Python变量类型元组tuple的详细用法

Python教程(10)——Python变量类型元组tuple的详细用法

时间:2023-08-20 20:44:46浏览次数:34  
标签:10 tuple Python 元素 元组 print 列表 my

在Python中,元组(Tuple)是一种有序且不可变的数据类型。元组可以包含任意数量的元素,用逗号分隔,并用圆括号括起来。与列表(List)不同,元组的元素不能修改。元组与列表一样,可以通过索引访问其中的元素。

my_tuple = ("apple", "banana", "cherry")
print(my_tuple[0])  # 输出:apple

元组的不可变性意味着无法向元组中添加、删除或修改元素。这种特性使得元组适合用于存储一组常量值,或作为函数的返回值,以防止意外的修改。

元组在Python中作为一种不可变的有序数据类型,用于存储不希望被修改的数据。它们能够提供数据保护、函数返回多个值、元组拆包等功能,使代码更加可靠、高效和安全。

创建元组

要想使用列表,肯定要先创建它,在Python中,可以使用圆括号 () 来创建元组,元组中的多个元素之间用逗号分隔。下面是几种常见的创建元组的方法:

  • 直接使用圆括号创建元组,这也是比较常用的一种方式:
my_tuple = ()  # 创建一个空元组
print(my_tuple)  # 输出: ()

my_tuple = (1, 2, 3)  # 创建包含整数的元组
print(my_tuple)  # 输出: (1, 2, 3)

my_tuple = ('apple', 'banana', 'cherry')  # 创建包含字符串的元组
print(my_tuple)  # 输出: ('apple', 'banana', 'cherry')
  • 使用逗号创建元组:
my_tuple = 1, 2, 3  # 创建包含整数的元组,逗号隐式表示
print(my_tuple)  # 输出: (1, 2, 3)

my_tuple = 'apple', 'banana', 'cherry'  # 创建包含字符串的元组,逗号隐式表示
print(my_tuple)  # 输出: ('apple', 'banana', 'cherry')
  • 使用 tuple() 函数创建元组:
my_tuple = tuple()  # 创建一个空元组
print(my_tuple)  # 输出: ()

my_tuple = tuple([1, 2, 3])  # 使用列表创建元组
print(my_tuple)  # 输出: (1, 2, 3)

my_tuple = tuple('hello')  # 使用字符串创建元组,每个字符作为一个元素
print(my_tuple)  # 输出: ('h', 'e', 'l', 'l', 'o')

需要注意的是,如果元组只包含一个元素,需要在元素后面加上一个逗号,以区分元组和表达式中的括号。

my_tuple = (1,)  # 创建包含一个整数的元组
print(my_tuple)  # 输出: (1,)

创建元组后,可以使用索引来访问元组的元素,也可以使用拆包操作将元组的值分配给多个变量。创建后的元组是不可变的,即元组的元素无法被修改、删除或添加。如果需要修改元组中的元素,可以先将元组转换为列表,进行相应的操作,然后再将列表转换回元组。

访问元组

在Python中,访问元组和访问列表是类似的,可以使用索引和切片来访问元组中的元素。

  • 使用索引访问元素:元组中的元素可以通过索引来访问,索引从0开始,表示元组中的第一个元素。例如,对于元组 t = (1, 2, 3),可以使用 t[0] 来访问第一个元素,使用 t[1] 来访问第二个元素,以此类推。
t = (1, 2, 3)
print(t[0])  # 输出 1
print(t[1])  # 输出 2
print(t[2])  # 输出 3
  • 使用切片访问元素:可以使用切片来访问元组中的多个元素。切片使用 start:stop:step 的形式,表示从索引 start 开始到索引 stop 结束(不包含 stop),步长为 step。例如,对于元组 t = (1, 2, 3, 4, 5),可以使用 t[1:4] 来访问第二个到第四个元素。
t = (1, 2, 3, 4, 5)
print(t[1:4])  # 输出 (2, 3, 4)
  • 使用负索引访问元素:可以使用负索引来从元组的末尾开始访问元素。例如,对于元组 t = (1, 2, 3),可以使用 t[-1] 来访问最后一个元素,使用 t[-2] 来访问倒数第二个元素,以此类推。
t = (1, 2, 3)
print(t[-1])  # 输出 3
print(t[-2])  # 输出 2
print(t[-3])  # 输出 1

需要注意的是,元组是不可变的,因此不能对元组中的元素进行修改。如果需要修改元组中的元素,可以先将元组转换为列表,修改列表中的元素,然后再将列表转换回元组。例如:

t = (1, 2, 3)
l = list(t)  # 将元组转换为列表
l[0] = 4  # 修改列表中的元素
t = tuple(l)  # 将列表转换回元组
print(t)  # 输出 (4, 2, 3)

另外,和列表一样,当访问元组时,要确保索引或切片的范围在列表的有效范围内,以避免出现索引错误。

更改元组

在Python中,元组是不可变的(immutable),这意味着无法直接修改元组中的元素。如果需要更改元组中的元素,可以通过以下方法实现:

  • 创建一个新的元组,包含需要更改的元素以及其他不需要更改的元素。
t = (1, 2, 3)
new_t = (4,) + t[1:]  # 创建一个新的元组,将第一个元素更改为 4
print(new_t)  # 输出 (4, 2, 3)
  • 将元组转换为列表,对列表进行修改后再转换回元组。
t = (1, 2, 3)
l = list(t)  # 将元组转换为列表
l[0] = 4  # 修改列表中的元素
t = tuple(l)  # 将列表转换回元组
print(t)  # 输出 (4, 2, 3)

需要注意的是,无论哪种方法,都会创建一个新的元组或列表来储修改后的结果,而不会直接修改原始的元组对象。因为元组是不可变的数据类型,在创建后无法修改其内部的元素。总结起来,要更改一个元组的值,需要创建一个新的元组并将修改后的值添加进去,或者将元组转换为列表进行修改后再转换回元组,因此如果需要频繁地对元素进行修改,建议使用列表代替元组。

删除元素

在Python中,由于元组是不可变的数据结构,所以无法直接删除元组的元素。不过可以通过以下几种方式来实现元组的删除操作:

  • 使用del关键字删除整个元组:
t = (1, 2, 3)
del t
print(t)  # 报错:NameError: name 't' is not defined

后再尝试访问元组会引发NameError,因为元组已经被删除。

  • 创建一个新的元组,不包含需要删除的元素:
my_tuple = (1, 2, 3)
new_tuple = tuple(element for element in my_tuple if element != 1)  # 创建新的元组,跳过需要删除的素
print(new_tuple)  # 输出: (2, 3)
  • 将元组转换为列表进行删除后再转换回元组:
my_tuple = (1, 2, 3)
my_list = list(my_tuple)  # 将元组转换为列表
my_list.remove(1)  # 从列表中删除需要删除的元素
new_tuple = tuple(my_list)  # 将列表转换回元组
print(new_tuple)  # 输出: (2, 3)

转换为列表后可以使用remove()方法删除元素。

需要注意的是,以上方法都会创建新的元组或列表,因为元组是不可变的数据结构,无法直接修改原始的元组对象。因此,删除操作实际上是创建一个新的元组,不包含需要删除的元素。

更多精彩内容,请关注同名公众:一点sir(alittle-sir)

标签:10,tuple,Python,元素,元组,print,列表,my
From: https://www.cnblogs.com/kiwiblog/p/17644540.html

相关文章

  • 高效利用Python装饰器优化函数功能与性能
    在后端开发领域,Python作为一门广泛应用的编程语言,为开发人员提供了丰富的工具和库。本文将深入探讨Python装饰器的原理、用法以及如何利用装饰器优化函数的功能和性能。通过结合实际示例,为读者提供关于装饰器的深奥知识和实用代码。1.装饰器概述与原理装饰器是Python中一种强大的......
  • python生成相对于入口文件所在目录的绝对路径
    在VSCODE中,如果打开多个python文件夹,则在执行python文件时,有时候当前工作目录会切换到其他文件夹,导致保存和读取文件报错.这时候可以生成文件的绝对路径,就可以避归这个问题.下面是生成绝对路径的代码:importosimport__main__defAbsPath(fileName:str)->str:......
  • Python爬虫实现简单翻译
    importrequestsimportjsonimportosurl="http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"data={"from":"AUTO","to":"AUTO","smartresult":"dict&quo......
  • 高效 Python (Effective Python)
    有效的PythonEffectivePythonPython思维方式第1条知道你使用的Python版本python--version#Python3.8.10Python3通常是python3python3--version#Python3.8.10在运行中,可以通过sys.version来获取python的版本>>>importsys>>>print(sys.version_......
  • python pycharm interpreter import cv2
     在安装opencv-python,在cmd输入python,importcv2正常,在pycharm中importcv2即显示ModuleNotFoundError:Nomodulenamed'cv2',解决方法:在pycharm——file——setting——project:objname(当前项目名称)——python interpreter中选择anaconda安装目录下的python.e......
  • win10开启WSL安装ubuntu
    从win10开始提供了WSL来使用linux系统,这里利用wsl来安装ubuntu,1、首先要确保windows中的几个相关的选项是打开的 确定后重启系统 然后以管理员身份打开powershell,输入命令Enable-WindowsOptionalFeature-Online-FeatureNameMicrosoft-Windows-Subsystem-Linux2、设置......
  • Mac Catalina安装Python版本Crypto
    在PyCharm2020+VirtualEnvs环境下使用如下命令,在MacCatalina上成功安装Crypto模块:pip3installpycrypto示例'''JustfortestAESalgorithminPython'''importbase64fromCrypto.CipherimportAESdefadd_to_16(value):whilelen(value)%16!......
  • 国外服务器怎么有效降低延迟103.36.167
    国外服务器怎么有效降低延迟?在全球化网络环境下,越来越多的企业和个人选择使用国外服务器来托管网站、应用程序或数据。然而,由于地理位置、网络连接等因素,使用国外服务器时可能会遇到延迟较高的问题。高延迟不仅影响用户体验,还可能对业务性能造成负面影响。国外服务器怎么有效降低......
  • 【web_逆向10】非对称加密之RSA
    非对称加密非对称加密.加密和解密的秘钥不是同一个秘钥.这里需要两把钥匙.一个公钥,一个私钥.公钥发送给客户端.发送端用公钥对数据进行加密.再发送给接收端,接收端使用私钥来对数据解密.由于私钥只存放在接受端这边.所以即使数据被截获了.也是无法进行解密的.常见......
  • python进程池的阻塞和非阻塞
    进程池概念:当需要上百上千个目标时,手动创建进程工作量大,此时就可以用到multiprocessing模块中提供的pool方法。初始化pool时,可以指定一个最大的进程数,当有新的请求提交到pool中时,如果pool还没有满,那么就会创造一个新的进程用于执行该请求。如果pool中的进程数满了,那么就需要等......