Python核心语法教程:元组的操作详解

2022-07-2821:25:51编程语言入门到精通Comments1,113 views字数 2510阅读模式

元组是一种不可改变的序列,它里面的内容是不可以被改变的。元组属于序列,它和列表相似,最主要的区别就是元组创建之后就不能再对里面的元素进行增删操作。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

元组的一般形式为:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

1
(1,2,3,4,5,6)

它与列表结构的区别在于它使用小括号‘()’,里面每个元素之间用‘,’隔开,在元组中同样可以存放整数、字符串、列表等类型的内容。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

    1. 创建元组和删除元组文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

创建可以采用多种方式。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

1) 创建空元组文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

创建空元组和列表方式一样,语法格式为:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

1
my_tuple = ()

下面看个例子:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

1
2
3
my_tuple = ()#创建空元组
print(my_tuple)#输出
print('数据类型',type(my_tuple))#看一下它的类型

输出结果:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

1
2
()
数据类型 <class 'tuple'>

2) 直接赋值创建元组文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

赋值创建元组的方式也相对简单,大家学过列表之后学习后面的都很方便,一定要好好掌握列表中的相关内容。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

直接赋值的语法格式:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

1
my_tuple = (value1,value2,value3,value4,value5)

my_tuple为列表名,value1~value5位元组中的各个元素,可以是整数、字符串或者列表,看下面的例子:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

1
2
my_tuple = ('www.dotcpp.com','123456',[1,2,3,4,5,6])#创建元组并直接进行赋值
print(my_tuple)#输出

输出结果:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

1
('www.dotcpp.com''123456', [12345])

3) 使用range()函数创建文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

使用range()函数我们可以创建具有一定数据规模的元组。看下面例子:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

1
2
my_tuple = tuple(range(1,100,3))#range(1,100,3)创建了一个1-100之间步长为3的序列,最后使用tuple()强制转换为元组类型
print(my_tuple)#输出

输出为:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

1
2
(1471013161922252831343740434649525558,
 61646770737679828588919497)

      2. 删除元组文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

删除元组的方式和列表相同,使用del语句直接进行删除,语法形式为:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

1
del my_tuple

如下例:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

1
2
3
4
5
6
>>> my_tuple = tuple(range(1,100,3))#range(1,100,3)创建了一个1-100之间步长为3的序列,最后使用tuple()强制转换为元组类型
>>> del my_tuple#删除元祖
>>> print(my_tuple)#这时候再输出就会报错
Traceback (most recent call last):
  File "<stdin>", line 1in <module>
NameError: name 'my_tuple' is not defined

3. 访问元组元素文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

我们在访问元组元素的时候同样是根据索引位置去找到所要访问的元素。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

我们先创建一个元组 my_tuple = (‘a’,’b’,’c’,’d’)文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

然后看一下代码:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

1
2
my_tuple = ('a','b','c','d')
print(my_tuple[0],my_tuple[1],my_tuple[2],my_tuple[3])

输出结果:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

1
a b c d

看一下对应表格:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

元组abc
索引012

4. 元组元素的修改文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

因为元组是不可变的数列,所以我们不可以对其元素进行修改,如果采用列表形式直接通过索引值进行修改的话会出现错误信息。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

1
2
3
4
5
>>> my_tuple = (1,2,3,4,5,6)
>>> my_tuple[2= 6
Traceback (most recent call last):
  File "<stdin>", line 1in <module>
TypeError: 'tuple' object does not support item assignment

所以我们如果要修改元组中的元素就要采用其他的方法。通常会采用两种方式,一种是重新赋值法,一种是类型转换法。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

1) 重新赋值法文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

1
2
3
4
>>> mytuple = (11,22,33,44,55,66,77)
>>> mytuple = (1,2,3)
>>> mytuple
(123)

这样的覆盖方式可以很简单的修改了元组中的元素,当然这种方式的使用范围受到限制,因此我们在大多数情况下可以采用第二种。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

2) 类型转换法文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

如果要对元组的第一百元素进行修改,那么采用上面方式就显得十分麻烦,因此可以采用类型转换,先把元组转换成其他数据类型,例如转换为列表,一般情况下我们 都是转成列表进行操作。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

看下面例子:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

1
2
3
4
5
6
7
8
my_tuple = (1,2,3,4,5,6)#先创建一个元组
my_tuple = list(my_tuple)#把元组转换为列表形式
print(my_tuple,type(my_tuple))#输出看一下现在的数据和类型
my_tuple.insert(3,'插入新元素')#在列表类型下进行元素的插入或更改或删除
my_tuple[3=['元素的更改']
my_tuple.pop()#元素的删除,pop()自动删除最后一项,也就是对应的6
my_tuple = tuple(my_tuple)#最后转换为元组形式
print(my_tuple,type(my_tuple))#打印

输出结果:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

1
2
[123456] <class 'list'>
(123, ['元素的更改'], 45) <class 'tuple'>

     5. 总结文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

元组相对于列表缺少了一些功能,但元组也有它的独特之处,首先元组的性能是比较高的,处理元组的速率要快于列表,
其次是它非常安全,当数据规模较大的时候,使用元组能保障你的数据不会被修改,确保了安全性,在存储方面是一个很好的选择。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/26184.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/ymba/26184.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定