首先列表s[i:j:k]的概念说一下,baii为起始位置,j为结du束位置,k为步长。
如果zhii或j为正,dao表示从左边的位置开始,即从索引0开始,例如:s = '123.456',s[0:2] == '12'。
如果i或j为负,则表示从末尾的位置开始,即len(s)+i或len(s)+j的值,例如:s[-3:-1] == '45'。
从i到j的s切片定义为以k为步长的序列,其中i<=k<j。如果i或j大于len(s),则使用len(s)。如果i省略,默认0。如果j省略,默认len(s)。如果i大于或等于j,则切片为空。
s从i到j步长为k的切片定义为第i+n*k项序列,其中0<=n<(j-i)/k。即索引是i、i+k、i+2*k、i+3*k等等,当到达j时停止(但不包括j)。如果k省略,默认1。
当k为正时,如果i和j的值大于len(s),则它们将减为len(s)。
当k为负时,如果i和j的值大于len(s),则它们将被减为len(s)-1。
第一个,k为-1,步长负数是从右向左依次递减输出,所以654。
第二个,起始位置i是-1,即6,步长1为正数,向右依次输出,不可能到达左边的-4位置,所以为空。
切片就是通过索引截取值
以冒号来定义步长和分片