上一篇我们学习了列表(List),这一篇我们将学习元组(Tuple)。
一、Python元组(Tuple)
python的元组与列表类似,列表使用方括号[ ],元组使用小括号()。
元组的创建跟列表一样,只需要在小括号中添加元素,并使用逗号隔开即可。
元组和列表的不同点:元组的元素不能修改,列表的元素是可修改的。
tup1 = () #创建空元组
tup2 = ('red',) #创建一个元素的元组
tup3 = ('red','black','orange','yello') #创建多个元素的元组
tup4 = ('red','black',4,5) #元组里面的元素可以不是同一个类型
tup5 = 'red','black','orang' #不用小括号的也是元组
print(tup1)
print(tup2)
print(tup3)
print(tup4)
print(tup5)
运行结果:
()
('red',)
('red', 'black', 'orange', 'yello')
('red', 'black', 4, 5)
('red', 'black', 'orang')
我们来检测一下上述的数据类型:
tup1 = () #创建空元组
tup2 = ('red',) #创建一个元素的元组
tup3 = ('red') #没有用逗号隔开
tup4 = 'red','black','orang' #不用小括号的也是元组
print('tup1的类型是:',type(tup1))
print(type(tup2))
print(type(tup3))
print(type(tup4))
运行结果:
tup1的类型是: <class 'tuple'>
tup2的类型是: <class 'tuple'>
tup3的类型是: <class 'str'>
tup4的类型是: <class 'tuple'>
运行截图:
二、元组的索引
元组与字符串,列表类似,正向索引从0开始,负向索引从-1开始,可以进行截取和组合等。
大家可以像学习列表时一样,继续去看第十篇关于字符串切片相关的内容。
字符串的正向索引和负向索引图
三、访问元组
3.1 单个元组元素的访问
tup = ('red','black','orange','yello')
print('正向索引第一个元素:',tup[0])
print('正向索引第二个元素:',tup[1])
print('负向索引第一个元素:',tup[-1])
print('负向索引第三个元素:',tup[-3])
运行结果:
正向索引第一个元素: red
正向索引第二个元素: black
负向索引第一个元素: yello
负向索引第三个元素: black
3.2 元组的切片
先熟悉一下已经学习过的 字符串、列表 两个序列中关于索引和切片的内容
正序索引是从左往右对字符串中的字符进行索引,第一个字符的索引从0开始。
倒序索引是从右往左对字符串中的字符进行索引,最右边的字符的索引从-1开始。
得到对应索引范围的元素,该范围包围起始端,
不包含结尾端(左闭右开型)默认截取方向从左往右。
注意:反向索引时,也是左闭右开型
按步长获取间隔的字符串,语法为
str1[start:end:step](切片语法:[起始:结束:步长])
按照step步长进行隔取;默认步长为1
tup = ('red','black','orange','yellow','white','blue')
print(tup[:]) #取所有值
print(tup[0:3]) #取从索引为0到索引为2
print(tup[1:4]) #取从索引为1到索引为3
print(tup[-4:-1]) #取从索引为-4到索引为-2
print(tup[0:4:2]) #从索引为0到索引为4,每2个取一个
运行结果:
('red', 'black', 'orange', 'yellow', 'white', 'blue')
('red', 'black', 'orange')
('black', 'orange', 'yellow')
('orange', 'yellow', 'white')
('red', 'orange')
四、元组的修改及删除
4.1元组中的元素值是不允许删除和改变的
4.2可以对两个元组进行联接,生成一个新的元组,原来的元组没有改变
tup1 = ('red','black','orange')
tup2 = ('yellow','white','blue')
tup3 = tup1+tup2
print(tup1)
print(tup2)
print(tup3)
运行结果:
('red', 'black', 'orange')
('yellow', 'white', 'blue')
('red', 'black', 'orange', 'yellow', 'white', 'blue')
4.3虽然元组的元素我们没办法删除,但我们可以用 del 把整个元组删除
tup1 = ('red','black','orange')
print(tup1)
del tup1
print(tup1)
运行结果:
('red', 'black', 'orange')
Traceback (most recent call last):
File "g:/老树Python/python38_3VScode/democode/T12.py", line 4, in <module>
print(tup1)
NameError: name 'tup1' is not defined
运行截图:
五、元组的内置函数
tup1 = ('red', 'black', 'orange')
tup2 = (1,2,3,4,5)
print('元组的长度:',len(tup1))
print('元组的最大元素:',max(tup1))
print('元组的最小元素:',min(tup1))
print('元组转化为列表:',list(tup1))
print('元组转化为字符串:',str(tup1))
print('元组转化为字符串类型:', type(str(tup1)))
print('元组元素的求和:', sum(tup2))
print('元组元素的排序:',sorted(tup2, reverse=True))
运行结果:
元组的长度: 3
元组的最大元素: red
元组的最小元素: black
元组转化为列表: ['red', 'black', 'orange']
元组转化为字符串: ('red', 'black', 'orange')
元组转化为字符串类型: <class 'str'>
元组元素的求和: 15
元组元素的排序: [5, 4, 3, 2, 1]
结束语:
** Python中的元组、列表及字符串都是属于Python序列,里面的很从知识点是通用的,但也有各自特有的属性。
下一篇我们将学习字典。