接上篇《12、列表高级应用》
上一篇我们学习了有关列表的高级应用操作(列表的增删改查),本篇我们来继续学习Python中元组的高级应用,以及字符串、列表和元祖的切片操作。
一、元组与列表的区别
Python中的元组(tuple)与列表(list)类似,不同之处在于元组的元素不能修改,即元组是一个不可变的序列。
元组的使用场景主要是作为固定的枚举值,或者存储内容不变的有序数列。
元组使用小括号,列表使用方括号。示例:
aList = ['ss',77,99.9]
print(aList)
aTuple = ('ss',77,99.9)
print(aTuple)
结果:
['ss', 77, 99.9]
('ss', 77, 99.9)
二、访问元组
访问元组很简单,和访问列表是一样的。访问单个元素就是中括号加元素的下标即可,如:
bTuple = ('ss',77,99.9)
print(bTuple[0])
print(bTuple[1])
print(bTuple[2])
结果:
ss
77
99.9
遍历元组的话,也和列表一样,通过for循环来遍历:
#不关注下标:
test_tuple = (66,88,99)
for m in test_tuple:
print("m = ",m)
#关注下标:
test_tuple = (66,88,99)
for j in range(0,len(test_tuple)):
print(f"test_tuple[{j}] = ",test_tuple[j])
效果:
tuple = 66
tuple = 88
tuple = 99
test_tuple[0] = 66
test_tuple[1] = 88
test_tuple[2] = 99
三、修改和删除元组
元组中的数据和Java只的Set集合一样,不允许修改元组的数据,并且不能删除其中的元素。
强行修改元组数据,会报错:
test_tuple = (66,88,99)
test_tuple[1]=44
结果:
Traceback (most recent call last):
File "D:\Ptyhon_Projects\Python基础\元组高级.py", line 28, in <module>
test_tuple[1]=44
~~~~~~~~~~^^^
TypeError: 'tuple' object does not support item assignment
可以删除整个元组,但不能删除元组中的元素:
# 删除元组
tuple_1 = ('a','b','c')
del tuple_1
print("tuple_1 = ",tuple_1)
结果:
Traceback (most recent call last):
File "D:\Ptyhon_Projects\Python基础\元组高级.py", line 32, in <module>
print("tuple_1 = ",tuple_1)
^^^^^^^
NameError: name 'tuple_1' is not defined. Did you mean: 'tuple'?
说明tuple_1整个被删除。
当然,可以使用变相的删除方法,通过切片的方式(这里不理解的,可以学习完下面的切片之后,再回头看这个),把需要剔除的元素作为切片点,保留切完后的后面和前面两个元组,然后在拼接,最终得到一个剔除该元素的新元组,如:
# 删除元组中的元素
tuple_1 = ('a','b','c','d','e')
# 删除第 2 个元素
tuple_1 = tuple_1[:1] + tuple_1[2:]
print(tuple_1)
结果:
('a', 'c', 'd', 'e')
四、定义元组
定义只有一个元素的元组,需要在唯一的元素后写一个逗号,如:
a=(11)
print("打印元组a:",a)
#虽然可以打印,但是其类型是int,即单个元素本身的类型
print("打印元组a类型:",type(a))
b=(11,)
print("打印元组b:",b)
print("打印元组b类型:",type(b))
结果:
打印元组a: 11
打印元组a类型: <class 'int'>
打印元组b: (11,)
打印元组b类型: <class 'tuple'>
可以看到,只有加了逗号的集合才被视为元组。
至此,元组的高级应用就介绍完毕了。下面说说对象的切片操作。
五、切片操作
切片操作是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片。
切片的语法:[起始:结束:步长],也可以简化使用[起始:结束]
注意:选取的区间从“起始”位开始,到“结束”位的前一位结束(不包含结束位本身),步长表示选取间隔。下面以字符串示例:
s='Hello World!'
print(s)
print(s[4]) # o 字符串里的第5个元素
print(s[3:7]) # lo W 包含下标3,不包含下标7
print(s[1:]) # ello World! 从下标为开始,截取后面所有的元素(没有结束位)
print(s[:4]) # Hell 从起始位置开始,取到下标为4的前一个元素(不包括结束位本身)
print(s[1:5:2]) # el 从下标为1开始,取到下标为5的前一个元素,步长为2(不包括结束位本身)
效果:
Hello World!
o
lo W
ello World!
Hell
el
至此,元组的高级应用及常见的切片操作讲解完毕,下一篇我们继续学习字典的高级应用。
参考:尚硅谷Python爬虫教程小白零基础速通教学视频
转载请注明出处:https://blog.csdn.net/acmman/article/details/129833402