zoukankan      html  css  js  c++  java
  • 切片

    https://blog.csdn.net/vince_zhu/article/details/107602135?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-6&spm=1001.2101.3001.4242

    首先简明概要说明用法,然后再用实际例子阐述。

    用法概述

    [-1] [:-1] [::-1] [n::-1]都是python中切片的使用方法。

    • [-1]:获取最后一个元素,类似于matlab中的end;
    • [:-1]:除了最后一个元素,获取其他所有的元素;
    • [::-1]:对第一个到最后一个元素进行倒序之后取出;
    • [n::-1]:对第一个到第n个元素进行倒序后取出。

    一般用法

    在Python中,切片(slice)是对序列型对象(如list, string, tuple)的一种高级索引方法。普通索引只取出序列中一个下标对应的元素,而切片取出序列中一个范围对应的元素,这里的范围不是狭义上的连续片段。

    基本索引

    我们从Python的基本索引开始,即单个整数的索引。假设被索引的序列仍为之前提到的a,则基本索引的语法为a[index],其中index为下标。读者可能会觉得这里过于简单,但我们要强调的是Python一个语法糖:负数下标索引,即:index可以取为负数,当其为-n时,对倒数第n个元素进行索引。我们用一张表格值观展示a的索引范围。
    在这里插入图片描述

    简单的切片

    简单切片指的是这样的切片形式:a[start:stop],其行为是得到下标在这样一个前闭后开区间范围内的元素,这个与matlab中的索引不大相同。其中start和stop为负数时,简单看作是负数下标对应的位置即可:

    X = [1,2,3,4,5]
    X[-3:-1]
    [3, 4]
    
    • 1
    • 2
    • 3
    • 切片超出索引范围:当start或stop超出上文提到的有效索引范围​时,切片操作不会抛出异常,而是进行截断。
    #实质上截断为了X[-3:5]
    X[-3:100]
    [3, 4, 5]
    
    • 1
    • 2
    • 3
    • 缺省:start和stop都是可以缺省的,在缺省的情况下,Python的行为是尽可能取最大区间,具体来说:
    #当step为正值,或者默认为1时,start的缺省值是无穷小(​),stop的缺省值是无穷大(​)
    #等效于X[0:3],前闭后开
    X[:3]
    [1, 2, 3]
    #当step为负值是,Python的行为是尽可能取最大区间,此时访问是逆序的,start应尽量取大,stop应尽量取小,才能保证区间最大
    X[:3:-1]
    #等效于X[4:3],前闭后开
    [5]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    扩展切片

    扩展切片指的是这样的切片形式:a[start:stop:step],其中step是一个非零整数,即比简单切片多了调整步长的功能,此时切片的行为可概括为:从start对应的位置出发,以step为步长索引序列,直至越过stop对应的位置,且不包括stop本身。事实上,简单切片就是step=1的扩展切片的特殊情况。需要详细解释的是step分别为正数和负数的两种情况。

    • step为正数:按照step的间距,从最开始索引到最终值;
    X[1:4:2]
    [2, 4]
    
    • 1
    • 2
    • step为负数:
    X[-1:1:-2]
    [5, 3]
    
    • 1
    • 2

    实例说明

    • [-1]:获取最后一个元素,类似于matlab中的end;
    #-1即为负向第一个索引
    X[-1]
    5
    
    • 1
    • 2
    • 3
    • [:-1]:除了最后一个元素,获取其他所有的元素;
    #由于step为缺省,默认为1,那么start缺省时取最小值0,即等效于X[0:-1]
    X[:-1]
    [1, 2, 3, 4]
    
    • 1
    • 2
    • 3
    • [::-1]:对第一个到最后一个元素进行倒序之后取出;
    #由于step为-1是逆序,那么start缺省时取最大值4,stop缺省时取最小值-6,即等效于X[4:-6:-1]
    X[::-1]
    [5, 4, 3, 2, 1]
    
    • 1
    • 2
    • 3
    • [n::-1]:对第一个到第n个元素进行倒序后取出。
    #由于step为-1是逆序,其中start为n,stop缺省时取最小值0,即等效于X[n:-(len+1):-1],即从第n个元素开始取出到第1个元素。
    X[3::-1]
    [4, 3, 2, 1]
    #等效于X[3:-6:-1]
    
    • 1
    • 2
    • 3
    • 4

    部分内容参考:https://zhuanlan.zhihu.com/p/79541418

  • 相关阅读:
    jsp Servlet 3.0文件上传
    Android 模拟多线程下载
    Android之Handler用法总结
    Android 手机模拟器安卓软件
    Json笔记
    java.lang.ClassNotFoundException: com.google.gson.Gson”
    关于MD5加密
    Android 抽屉布局
    Android ListView 适配器
    如何在安裝SELinux的环境执行Quartus II
  • 原文地址:https://www.cnblogs.com/Manuel/p/14188999.html
Copyright © 2011-2022 走看看