内置数据结构-切片

切片是对列表、元组、字符串等序列进行操作的一种方法,主要是使用下标/索引来操作
下标如果有起始和结束位置,则不包括结束位置的索引,类似数学区间中的前闭后开的[ ), 可以以下形式表示。

序列[起始位置:结束位置:步长]
seq[start:end: step]

左向右切片时,左边的数字要小于右边的数字, 大于的时候返回一个空的对象,索引可以是负数

In [74]: lst3
Out[74]: ['a', 3, 2, 1, 'hello list', 'a', 10, 'head']

In [75]: lst[2:5]
Out[75]: [2, 1, 'hello list']

超出索引范围时不会像单个取值时那样报错,取到最后为止
In [76]: lst[-12:-5]
Out[76]: ['a', 3, 2]

In [77]: s = 'python'
In [78]: s[4:1]
Out[78]: ''

如果 start 为0的时候可以省略,end为序列长度的时候可以省略,都省略相当于copy的效果

In [79]: lst3[:]
Out[79]: ['a', 3, 2, 1, 'hello list', 'a', 10, 'head']

In [80]: s[:4]
Out[80]: 'pyth'

In [81]: s[2:]
Out[81]: 'thon'

步长表示以间隔多少个元素取值,步长可以是负数,表示从后向前

从0到8,每隔两个元素取一个
In [82]: lst3[:8:2]
Out[82]: ['a', 2, 'hello list', 10]

从后向前时起始值要大于结束值
In [86]: lst3[10:2:-1]
Out[86]: ['head', 10, 'a', 'hello list', 1]

你可能感兴趣的:(内置数据结构-切片)