Python中的“高级操作“

序列类型各具体类型使用相同的索引体系,以下以列表类型为例,即正向递增序号和反向递减序号,如图所示:在这里插入图片描述
了解这些以后就可以继续了解接下来的内容了

一、Python的切片
二、Python的高级切片

一、Python的切片功能
切片的书写形式:[i : i+n : m] ;
切片的基本含义是:从序列的第i位索引起,向右取到后n位元素为止,按m间隔过滤 。
m 可以不提供,默认值是1

以下是切片的基础用法!!!!!!

li = [1, 4, 5, 6, 7, 9, 11, 14, 16]
# 以下写法都可以表示整个列表,其中 X >= len(li)
li[0:X] == li[0:] == li[:X] == li[:] 
== li[::] == li[-X:X] == li[-X:]
 
li[1:5] == [4,5,6,7] # 从1起,取5-1位元素
li[1:5:2] == [4,6] # 从1起,取5-1位元素,按2间隔过滤
li[-1:] == [16] # 取倒数第一个元素
li[-4:-2] == [9, 11] # 从倒数第四起,取-2-(-4)=2位元素
li[:-2] == li[-len(li):-2] 
        == [1,4,5,6,7,9,11] # 从头开始,取-2-(-len(li))=7位元素

二、切片的高级用法
直接上干货!!!

li = [1, 4, 5, 6, 7, 9, 11, 14, 16]
# 步长为负数时,列表先翻转,再截取
li[::-1] == [16,14,11,9,7,6,5,4,1] # 翻转整个列表
li[::-2] == [16,11,7,5,1] # 翻转整个列表,再按2间隔过滤
li[:-5:-1] == [16,14,11,9] # 翻转整个列表,取-5-(-len(li))=4位元素
li[:-5:-3] == [16,9] # 翻转整个列表,取-5-(-len(li))=4位元素,再按3间隔过滤

切片的高级用法在某些特定的情况下是非常适用的,因此小伙伴们一定要掌握它.

注: 切片的步长不可以为0
li[::0] # 报错(ValueError: slice step cannot be zero)

猜你喜欢

转载自blog.csdn.net/AQAmbition/article/details/107588952