细说 python 切片

学习笔记 马富天 2019-08-29 11:44:02 16 2

【摘要】在 python 中切片并非是列表(list)的特有属性,python 中的有序序列也都支持切片,如元组和字符串。本文会详细的介绍一下 python 切片的基本操作及原理。

切片的完整格式:

  1. object[start_index:end_index:step]

如有一个列表:a = ['a','b','c','d','e','f','g']

step:可正可负,但不能为 0。它的绝对值就是步长,当 step 为正数时,索引方向从左到右,起点 start_index 为 0;当 step 为负数时,索引方向从右到左,起点 start_index 为 -1。step 默认值是 1。如下图所示:

请输入图片名称

对于元素 a ,它对应的索引分为正索引和负索引,虽然下标一正一负,但指的都是同一个值,即 a[0] = a[-7] => 'a'。

a[:](等价于a[::]):默认 step = 1,索引方向从左到右,此时起点下标默认为最左边的索引,即 0;终点下标为最右边的索引加 1,即 7,等价于 a[0:7:1]

a[::-1]:step = -1,索引方向从右到左,此时起点下标默认为最右边的索引,即 -1;终点下标为最左边的索引减 1,即 -8,等价于 a[-1:-8:-1]

只要索引方向确定下来,那么 start_index 和 end_index 可正可负,只要符合索引方向,就可以得出获得想要的切片段。

例如,当 step = 1 时,a[1:-1:1],a[1:6:1],a[-6:-1:1],a[-6:6:1] 都表示 ['b', 'c', 'd', 'e', 'f'];

当 step = -1 时,a[-2:-5:-1],a[-2:2:-1],a[5:-5:-1],a[5:2:-1] 都表示 ['f', 'e', 'd']。

当然,若确定了索引方向,但是 start_index 与 end_index 并不符合索引方向的话,那么会出现切片为空列表 [] 的情况,如:a[5:1:1],a[-1:1:1] 都会取得 [] ,a[1:5:-1],a[1:-1:-1] 也会取得 [],因为起点和终点下标并不符合索引的方向,所以取得为空。

以上就是关于 python 切片的相关知识点,若说的不够明白,只要看图中的示例即可记住。

tip:

  1. a[:] = a[::] = a[::1] = a[0::1] = a[:len(a):1] = a[0:len(a):1]
  2. a[0] = a[-len(a)]
  3. a[-1] = a[len(a)-1]

a[] 是一种错误的写法;值域是 start_index 为 [(包括边界值) ,end_index 为 )(不包括边界值),即值域为左闭右开区间。

版权归 马富天PHP博客 所有

本文标题:《细说 python 切片》

本文链接地址:http://www.mafutian.net/429.html

转载请务必注明出处,小生将不胜感激,谢谢! 喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^

0

0

上一篇《 字符串 "open_door" 转成 "OpenDoor","make_by_id" 转成 "MakeById" 》

这是最后一篇文章

所有评论

  1. 首页
  2. 上一页
  3. 1
  4. 下一页
  5. 尾页
  6. 第1页
  7. 每页12条
  8. 共1页
  9. 共2条
评论审核未开启
表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情
验证码

TOP10

  • 浏览最多
  • 评论最多