zoukankan      html  css  js  c++  java
  • 详解Python 切片语法

    Python的切片是特别常用的功能,主要用于对列表的元素取值。这篇文章主要介绍了详解Python 切片语法,需要的朋友可以参考下

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

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

    alist = [0,1,2,3,4]

    切片语法的基本形式为:

    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参数,则会返回整个列表。
    • 第五种方式点击进入,免费领取高品质python学习资料大全,适合在校大学生,小白,想转行,想提升自己的都可以加入。

    需要注意的是, :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 切片语法,希望对大家有所帮助

  • 相关阅读:
    虚拟化技术KVM
    Rsync+Inotify实现文件自动同步
    第一次使用博客园
    kmp算法分析
    程序可移植性分析(一)数据类型
    strings用法小记
    size用法小记
    readelf用法小记
    nm用法小记
    ar用法小记
  • 原文地址:https://www.cnblogs.com/daniumiqi/p/12077264.html
Copyright © 2011-2022 走看看