作为初学者,我们经常会遇到有关序列 [-1:],[:-1],[::-1] 等切片操作,往往傻傻搞不清,甚至懵圈,如何正确理解并自如使用呢?

        首先复习一下序列的有关属性。

        序列是 Python 最基本的数据结构,衍生字符串、列表、元组等数据类型,其中的每个元素都有对应的位置值,具有正向递增( 0 开始),反向递减( -1 开始)之属性,据此可以进行切片索引等操作:

操作符描述
s[i]索引,返回序列 s 中的第 i 个元素,i 为序号
s[i:j]

切片,返回序列 s 中从序号 i 到 j(不包括j)的元素子序列

         i 缺省时,默认为 0

         j 缺省时,默认为 len(s)

         i、j 均缺省时,默认为全部

s[i:j:k]

切片,返回序列 s 中从序号 i 到 j(不包括j),以 k 为步长的元素子序列

        k > 0,步长自左而右(正序);缺省时,默认为 1

        k < 0,步长自右而左(倒序);i 缺省时,默认为 -1;j 缺省时,默认为 -len(s)-1

示例:

>>> s = ('Life', 'is', 'short', 'you', 'need', 'Python')

>>> print(s[1])
is

>>> print(s[:])
('Life', 'is', 'short', 'you', 'need', 'Python')

>>>print(s[-1:])
Python

>>> print(s[:-1])
('Life', 'is', 'short', 'you', 'need')

>>> print(s[::-1])
('Python', 'need', 'you', 'short', 'is', 'Life')

>>> print(s[::-2])
('Python', 'you', 'is')

>>> print(s[2::-1])
('short', 'is', 'Life')

释义:

        s[1] 表示序列 s 的第 1 个元素

        s[:] 表示序列 s 的全部元素       

        s[-1:] 相当于 s[-1:6] 表示序列 s 的第 -1 个元素,也即最后一个元素

        s[:-1] 相当于 s[0:-1],表示序列 s 自始至最后一个元素前的所有元素

        s[::-1] 相当于 s[-1:-7:-1],表示序列 s 自尾而首的所有元素,即倒序

        s[::-2] 表示倒序,步长为2

        s[2::-1] 表示自第 2 个元素始倒序


关于序列的更多知识总结,请参见:

Python 序列之三言两语序列是具有先后关系的一组元素...https://blog.csdn.net/iprobobo/article/details/122542937

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐