python slice

切片的语法表达式为:[start_index : end_index : step],其中:

  • start_index表示起始索引
  • end_index表示结束索引
  • step表示步长,步长不能为0,且默认值为1

切片操作是指按照步长,截取从起始索引到结束索引,但不包含结束索引(也就是结束索引减1)的所有元素。

  • python3支持切片操作的数据类型有listtuplestringunicoderange
  • 切片返回的结果类型与原对象类型一致
  • 切片不会改变原对象,而是重新生成了一个新的对象
>>> m = list(range(100))# 通过range函数创建一个0-99的数列,组成一个list赋值给m
>>> m[:10]#取前十个数
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> m[-10:]#取后十个数
[90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
>>> m[10:20]#取前11-20个数
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
>>> m[:10:2]#前十个数中,每2个数取一个
[0, 2, 4, 6, 8]
>>> m[5:15:3]#第6-15个数中,每3个数取一个
[5, 8, 11, 14]
>>> m[::10]#所有的数中,每10个数取一个
[0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
>>> m[:]#什么都不写,可以原样复制一个list
[0, 1, 2, 3, 4, 5, 6, 7,……,99]
 
num2 = [1, 2, 3, 4, 5, ["a", "b", "c", ["d", "e"]]]
print(num2[3:6]) # 这个切片表示获取从第三个元素到第六个元素的值,当前列表中只有5个元素,由于切片的性质顾头不顾尾,所以要取的最后一个值,就必须是6
>>>[4, 5, ['a', 'b', 'c', ['d', 'e']]]

summary:

1. 省略start_index,保留end_index,这样会从第一个元素开始,切到end_index - 1的元素为止

ex:  C = ['A','B','C','D','E','F']

>>> C[:5]
['A', 'B', 'C', 'D', 'E']

2. 保留start_index,但省略end_index,这样会从起始索引开始,切到最后一个元素为止

>>> C[2:]
['C', 'D', 'E', 'F']

3. 省略start_indexend_indexstep,这样就表示就表示切片整个序列,也就是复制出了一个新的序列

>>> C[:]
['A', 'B', 'C', 'D', 'E', 'F']

4. 省略start_indexend_index,但保留step,表示对整个序列,按照步长整除的规则取值

>>> C[::2]
['A', 'C', 'E']

5. 此时,如果我们将步长设为-1,那么就可以得到一个反序的序列:

>>> C[::-1]
['F', 'E', 'D', 'C', 'B', 'A']
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值