本文实例讲述了python数据类型之tuple元组。分享给大家供大家参考,具体如下:
tuple元组
1.概述
本质上是一种有序的集合,和列表非常的相似,列表使用[]表示,元组使用()表示.
特点:一旦初始化,就不能发生改变
2.元组的创建
格式:
元组名 = (元素1, 元素2 ,元素3,…)
1
2
3
4
5
6
7
8
9
10
11
12
|
#创建空的元组 tuple1 = () print (tuple1) #创建带有元素的元组 tuple2 = ( 22 , 33 , 14 , 109 ) print (tuple2) #与列表类似,元组中的元素类型可以不同 tuple3 = ( 23 ,true, "good" ) print (tuple3) #定义只有一个元素的元组 tuple4 = ( 1 ) #这定义的不是元组而是整数1 tuple4 = ( 1 ,) #定义一个元素的元组定义时必须加一个逗号",",用来消除歧义 |
输出:
()
(22, 33, 14, 109)
(23, true, 'good')
3.元组元素的访问
3.1 访问元组中的元素:
格式: 元组名[下标]
1
2
3
4
5
|
tuple1 = ( 20 , 40 , 201 , 401 ) print (tuple1[ 0 ]) #注意使用下标取值的时候,要注意下标的取值范围,不要下标越界 #获取最后一个元素 print (tuple1[ - 1 ]) |
输出:
20
401
3.2 修改元组
在元组定义的时候大家都知道元组一旦初始化就不能改变,但是现在如果我想改变元组怎么办呢?
元组是不能修改的,但是列表可以,元组中的元素的数据类型可以是不同类型的,因此我们可以通过在元组中添加一个列表,而列表是可以修改的,进而来”修改“我们的元组
1
2
3
4
5
|
tuple1 = ( 'hello' , 'you' ,[ 20 , 30 ]) #修改元组 tuple1[ 0 ] = 'hi' #报错,元组不能修改 tuple1[ 2 ][ 1 ] = 'good' |
注意:从表面上看我们的元组确实是改变了,但其实改变的不是我们的元组,而是list的元素,所谓的tuple不变是说,tuple的每个元素的指向永远不变,一旦它指向了这个list,就不能改指向其他的对象,但是指向的list本身是可变的!
1
2
3
4
|
tuple1 = ( 'hello' , 'you' ,[ 20 , 30 ]) #修改元组 tuple1[ 2 ][ 1 ] = 'good' print (tuple1) |
输出:
('hello', 'you', [20, 'good'])
3.3 删除元组
元组是不可变的,但是我们可以使用del语句删除整个元组
1
2
3
4
|
tuple1 = ( 'hello' , 'hi' ) del tuple1 print (tuple1) #此时会报错 |
4.元组操作
4.1 元组连接组合
语法:
元组1 元组2
元组3 = 元组1 + 元组2
1
2
3
|
tuple1 = ( 1 , 2 , 3 ) tuple2 = ( 4 , 5 , 6 ) print (tuple1 + tuple2) |
结果
(1, 2, 3, 4, 5, 6)
注意:元素连接组合并没有改变原来的元组,而是生成了一个新的元组。
4.2 元组重复
语法:
元组2 = 元组1 * n
1
2
3
|
tuple1 = ( 1 , 2 , 3 ) tuple2 = tuple1 * 3 print (tuple2) |
结果
(1, 2, 3, 1, 2, 3, 1, 2, 3)
4.3 判断元素是否在元组中
语法:
元素 in 元组
若存在则返回true,否则返回false
1
2
|
tuple1 = ( 1 , 2 , 3 ) print ( 1 in tuple1) |
结果
true
1
2
|
tuple1 = ( 1 , 2 , 3 ) print ( 5 in tuple1) |
结果
false
4.4 元组的截取
语法:
元组名[start:end]
- 截取的元组范围[start,end)
- 功能:获取开始下标到结束下标之前的所有元素。
- 若不指定start则默认是从开头开始截取到指定位置
- 若不指定end则默认从指定位置截取到结尾
1
2
3
|
tuple1 = ( 1 , 2 , 3 , 8 , 'hello' , 'good' ) tuple2 = tuple1[ 2 : 5 ] print (tuple2) |
结果
(3, 8, 'hello')
1
2
3
|
tuple1 = ( 1 , 2 , 3 , 8 , 'hello' , 'good' ) tuple2 = tuple1[: 5 ] print (tuple2) |
结果
(1, 2, 3, 8, 'hello')
1
2
3
|
tuple1 = ( 1 , 2 , 3 , 8 , 'hello' , 'good' ) tuple2 = tuple1[ 3 :] print (tuple2) |
结果
(8, 'hello', 'good')
5.元组的方法
5.1 len(tuple)
功能:获取元组元素的个数
1
2
|
tuple1 = ( 1 , 2 , 3 , 8 , 'hello' , 'good' ) print ( len (tuple1)) |
结果
6
5.2 max(tuple)
功能:获取元组中元素的最大值
1
2
|
tuple1 = ( 1 , 2 , 3 , 8 , 20 , 13 ) print ( max (tuple1)) |
结果
20
5.3 min(tuple)
功能:获取元组中元素的最小值
1
2
|
tuple1 = ( 1 , 2 , 3 , 8 , 20 , 13 ) print ( min (tuple1)) |
结果
1
5.4 tuple(list)
功能:将列表转换为元组
1
2
|
list1 = [ 1 , 2 , 3 , 8 , 20 , 13 ] print ( tuple (list1)) |
结果
(1, 2, 3, 8, 20, 13)
6.二维元组
与二维列表类似,一个元组中的元素依然是元组,则成为二维元组。
元组名 =(元组1,元组2,…)
1
|
tuple1 = (( 1 , 2 , 3 ),( 4 , 5 , 6 ),( 7 , 8 , 9 )) |
二维元组取值
元组名[下标1][下标2]
1
2
3
|
tuple1 = (( 1 , 2 , 3 ),( 4 , 5 , 6 ),( 7 , 8 , 9 )) #获取第一个元组的第一个元素 print (tuple1[ 0 ][ 0 ]) |
结果
1
希望本文所述对大家python程序设计有所帮助。
原文链接:https://blog.csdn.net/lm_is_dc/article/details/80076802