Python 切片语法详解!

作者: 14e61d025165 | 来源:发表于2019-06-11 15:43 被阅读1次

Python的切片是特别常用的功能,主要用于对列表的元素取值。使用切片也会让你的代码显得特别Pythonic。

切片的主要声明如下,假设现在有一个list,命名为alist:

alist = [0,1,2,3,4]
复制代码
切片语法的基本形式为:

Python学习交流群:1004391443,这里是python学习者聚集地,有大牛答疑,有资源共享!小编也准备了一份python学习资料,有想学习python编程的,或是转行,或是大学生,还有工作中想提升自己能力的,正在学习的小伙伴欢迎加入学习。

alist[start:stop:step]
复制代码
可以看出对于列表的切片操作有三个参数,分别为:

start:起始位置
stop:终止位置
step:步长
三个参数都是可选参数,意义为list的下标,即index。step参数默认值为1。表现形式有以下几种:

alist[start:stop]
alist[start:]
alist[:stop]
alist[:]
复制代码
第一种方式指定了start与stop参数,从start指定的下标开始取alist的元素,直到stop-1,例如 a[1:3] 的结果为 [1,2] 。
第二种方式会从start指定的下标开始,取alist剩余元素。例如 a[1:] 会得到 [1,2,3,4] 。
第三种方式会从alist的开始,取list元素,直到下标为stop-1,例如 a[:4] 会得到结果 [0,1,2,3]
第四种方式没有指定start与stop参数,则会返回整个列表。
需要注意的是, :stop 表示不在选定切片中的第一个值, alist[start:stop] 的取值类似于数学中的取值范围为 [start, stop) , 所以在步长默认为1的情况下, start-stop 的结果即为所取元素的数量。

负值用法

start与stop参数为负值

start与stop的值可以是负值,表示取值是从list的最后开始,而不是开头。 例如:

alist[-1]
alist[-3:]
alist[:-1]
复制代码
[2,3,4]
[0,1,2,3]
step参数为负值

step为负值时候表示将列表逆向,最简单的例子如下:

alist[::-1]
复制代码
输出结果为 [4,3,2,1,0] 。这个例子实际是以下面的这个形式返回,

[alist[-1], alist[-1-step], ..., alist[0]]
复制代码
即从倒数第一个元素开始,每一步加上步长,因为这里步长为负数,所以是减法,直到alist的开头。 知道这个原理,就能明白一些加上了start与stop参数的复杂写法,例如:

指定了start参数

alist[1::-1]
复制代码
实际上是这样返回:

[alist[1], alist[1-step], ..., alist[0]]
复制代码
因此,返回的是 [1,0]

指定了stop参数

alist[:1:-1]
复制代码
实际上是这样返回:

[alist[-1], alist[-1-step], ..., alist[stop+1]]
复制代码
因此,返回的是 [4, 3, 2] 。

同时指定了start与stop参数

注意,由于是逆序,所以start参数应该大于stop参数。

alist[3:1:-1]
复制代码
实际上是这样返回:

[alist[start], alist[start-step], ..., alist[stop+1]]
复制代码
因此,返回的是 [3,2]

我们可以看出,

如果指定了start参数,则从start参数index开始取元素,直到遇到stop下标或者list的第一个元素。
如果未指定start参数,则从list倒数第一个元素开始,直到遇到stop下标或者list的第一个元素。
总结

切片语法的使用特别灵活,如果正确掌握了它的用法,能够简化你的代码。需要注意的是,Python也提供了slice类用于制造切片,例如:

alist[start:stop:step]
复制代码
实际上等价于

alist[(slice(start,stop,step))]
复制代码

相关文章

  • Python切片语法详解 看完你就是切片大神

    Python切片语法详解 看完你就是切片大神 看完本篇文章你就是切片大神 切片语法可用于字符串、列表、元组、集合、...

  • Python 切片语法详解!

    Python的切片是特别常用的功能,主要用于对列表的元素取值。使用切片也会让你的代码显得特别Pythonic。 切...

  • python切片是什么?

    python切片是什么? 切片是指对操作的对象取出一部分的概念 字符串、列表、元组都支持切片语法 切片的语法为 [...

  • python切片详解

    先从原理上分析切片运算:list的切片,内部是调用__getitem__,__setitem__,__delite...

  • 公共语法

    公共语法 5.1 Python 内置函数 Python 包含了以下内置函数: 5.2 切片 5.3 运算符 成员运...

  • Django中QuerySet对象

    1.1、可切片 使用Python 的切片语法来限制查询集记录的数目 。它等同于SQL 的LIMIT 和OFFSET...

  • python速查笔记

    简介 本篇博客记录python基本语法,用于速查 列表与元组 切片操作sname[start:end:step]#...

  • 彻底搞懂python序列的切片操作

    一、切片 切片是python极其有用且强大的功能。它使我们能够使用简单明了的语法来操作序列,包括字符串、列表、元组...

  • Python3切片详解

    本文通过一个简单的例子讲解切片的应用: 先构造一个list列表a: 切片的使用可以看做 [start:end:in...

  • 【框架语言】Python切片详解

    在利用python解决各种实际问题的过程中,经常会遇到从某个对象中抽取部分值的情况,切片操作正是专门用于完成这一操...

网友评论

    本文标题:Python 切片语法详解!

    本文链接:https://www.haomeiwen.com/subject/xouqfctx.html