python切片不容错过的一篇文章

题目

我需要对Python的切片符号表示有一个很好的解释(有引用更佳)。
对我来说,这个符号需要一点补充。
它看起来非常强大,但我还没有完全理解它。

回答

它真的是非常简单的:

a[start:end] # items start through end-1
a[start:]    # items start through the rest of the array
a[:end]      # items from the beginning through end-1
a[:]         # a copy of the whole array

还有步长(step)值,可用于上述任何一项:

a[start:end:step] # start through not past end, by step

需要记住的关键是:end值表示在选定的片中第一个没有的值。因此,end和start之间的插值表示所选元素的数量(如果步长为1,表示默认)。

另一个特性是start或end可能是一个负数,这意味着它从数组的末尾而不是开始计数。所以:

a[-1]    # last item in the array
a[-2:]   # last two items in the array
a[:-2]   # everything except the last two items

同样,步长可能是负数:

a[::-1]    # all items in the array, reversed
a[1::-1]   # the first two items, reversed
a[:-3:-1]  # the last two items, reversed
a[-3::-1]  # everything except the last two items, reversed

如果项目比你要求的要少,Python对程序员来说是很好的。例如,如果您要求a[:-2]并且a只包含一个元素,那么您将得到一个空列表而不是一个错误。有时你更喜欢错误,所以你必须意识到这可能发生。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 〇、前言 本文共108张图,流量党请慎重! 历时1个半月,我把自己学习Python基础知识的框架详细梳理了一遍。 ...
    Raxxie阅读 19,138评论 17 410
  • 手心儿扣出了汗 激动的话儿合并了呓酣 月儿吟开 一张多情的素笺 粉红的墨香 跳跃着诗一般的话言 玫瑰的芳菲 采自祝...
    一池凹水凸龙阅读 236评论 1 13
  • 昨天收到自己去年寄来的一封信,上面的很多问题现在都有了答案,有了结果。 去年的我,这时候正在准备毛概考试,这时的我...
    十三少的jian阅读 320评论 0 0
  • 趁着亚马逊黑五大促,买了两小盒吴竹的水彩,一个纯粹是被盒子吸引,另一个是被金闪闪的颜色迷惑。趁着早上读书后的热情,...
    Liv秋雪阅读 368评论 0 0
  • 我来自农村,现在生活在这个城市的最底层,身边接触到的人都是平凡而微小的,但从他们身上时常能发现闪光点。 市场里有位...
    梦得伊桑阅读 183评论 0 3