步长
-
可以给切片添加步长来控制切片的方向
s = "我爱你" print(s[::-1])
-
语法
s[start:end;step]
表示从 start 切到 end , 每 step 个元素出来一个元素
s = "sbcdefghigkrst" print(s[1:10:3])
-
如果最后一个为负数的话,为倒数,取最右边的
踩到的坑
学习字符串的时候学到了步长,步长可以为负数,默认为正数1。
在list的学习中同样是有步长这个概念的,在尝试写代码的过程中发现了我对步长为负数时的一个错误用法:
-
出错思路:
想要从3-5倒着输出
print(s[3:5:-1])
但是发现什么都输出不了,也没有报错
-
正确思路:
因为步长是负数的时候倒着数,那么人类思路是3-5倒着数,那换种思路就是5-3来进行逐个输出,python能接受的就是第二种情况。在他的理解中
print(s[5:3:-1])
才是正确可以执行的
-
例子
list = ["ccc", "ddd", "eee", "fff", "aaa", "www"] print(list[1:3]) print(list[5:2:-1]) s = "abcdefghijklmnopqrstuvwxyz" print(s[3:6:-1]) print(s[5:2:-1])