Python之切⽚操作
记得刚开始学切⽚这⼀节的时候,看完之后,做了作业,感觉记忆深刻。学到后⾯很多地⽅都可以⽤到切⽚,这时候切⽚早已被我忘得⼀⼲⼆净。
切⽚(Slice)是⼀个取部分元素的操作。可以操作list、tuple、字符串。利⽤切⽚很多地⽅循环就不再需要了。Python的切⽚⾮常灵活,⼀⾏代码就可以实现很多⾏循环才能完成的操作。
通常⼀个切⽚操作要提供三个参数 [start_index: stop_index: step] :
start_index是切⽚的起始位置
stop_index是切⽚的结束位置(不包括)
step可以不提供,默认值是1,步长值不能为0,不然会报错ValueError。
L=list(range(10))
L1=L[0:3] #从索引0开始取,直到索引3为⽌,但不包括索引3
#运⾏结果:[0, 1, 2]
L2=L[:3] #如果第⼀个索引是0,还可以省略
#运⾏结果:[0, 1, 2]
L3=L[:-1] #Python⽀持L[-1]取倒数第⼀个元素,那么它同样⽀持倒数切⽚,倒数第⼀个元素的索引是-1
#运⾏结果:[0, 1, 2, 3, 4, 5, 6, 7, 8]
L4=L[1:8:2] #前8个数,每两个取⼀个
#运⾏结果:[1, 3, 5, 7]
L5=L[::-1] #倒叙取每⼀个数
#运⾏结果:[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
L6=L[:] #只写[:]就可以原样复制⼀个list
#运⾏结果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
作业1:
#利⽤切⽚操作,实现⼀个trim()函数,去除字符串⾸尾的空格
def trim(s):
while s[:1]=='': #while循环判断第⼀个元素是否为空
s=s[1:] #为空的话将第⼀个元素截取
while s[-1:]=='': #while循环判断最后⼀个元素是否为空
s=s[:-1] #为空的话将最后⼀个元素截取
return s
作业2:
#回数是指从左向右读和从右向左读都是⼀样的数,例如12321,909。利⽤filter()筛选出回数:
def is_palindrome(n):
if str(n)==str(n)[::-1]: #判断从左向右读和从右向左读是否都是⼀样的数
字符串切片截取return n
print(list(filter(is_palindrome,list(range(100)))))
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论