【Python从入门到进阶】13、元组高级应用及常见切片操作

接上篇《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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

光仔December

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值