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

文章目录

  • 前言
  • 一、元组的创建
    • 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)

运行结果如下:

二、元组元素的访问

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'))#元素不在元组中,报错

运行结果如下:

六、元组和列表的区别

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

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

%s 个评论

要回复文章请先登录注册