zoukankan      html  css  js  c++  java
  • 相关Python分割操作

    刚论坛python文本 http://bbs.byr.cn/#!article/Python/1693 攻克了一个关于python分片的问题。

     

     

    问题:

    uesrList = ['1','2','3','4','5','6'] 
    subList1 = uesrList[2:5] 
    subList2 = uesrList[-3:-1] 
    subList3 = uesrList[0:-2] 
    subList4 = uesrList[0:-3] 
    subList5 = uesrList[-3:0] 
    print(subList1) 
    print(subList2) 
    print(subList3) 
    print(subList4) 
    print(subList5) 
    
    
    #输出
    ['3', '4', '5'] 
    ['4', '5'] 
    ['1', '2', '3', '4'] 
    ['1', '2', '3'] 
    []
    

    为什么会出现返回[ ]?   分片的结果为什么会是这样?

     

     

    原因:

     

    常常看到[a:b]这样对list的分片操作。

     事实上python的分片是有三块内容的 如:[a:b:c]   当中a,b,c都分别能够省略。

    只是c默认是1, 假设你不显式的设定它为负数。它之会从前往后(从左往右)遍历。

     

    比方[-2:]

    在索引-2的位置上是 5,依照默认顺序从左往右。因此结果是从5往后。

    结果就会输出 ['5' , '6']

    假设c为负,则顺序相反。为从右到左。如[-2::-1]即为 ['5', '4', '3', '2', '1']

     

    因此依据索引仅仅是找到位置,之后依照顺序方向遍历到规定的位置就可以。

     

    注:

    遍历过程中,第二个索引(b)所在的位置一定是在第一个元素(a)按 顺序方向的后面,假设是[-1:-2]这种,按

    照从左到右找不到则也会返回空list。

     

    因此不论什么[a:0] 的都是空list。 要么是由于 索引0就是第一个,还不能算 (分片操作包含[ ]左边不包含右边)返回空,

    要么是由于索引0后面的元素,依照从左向右的顺序是找不到第一个元素的。

     


     

     

    版权声明:本文博主原创文章。博客,未经同意不得转载。

  • 相关阅读:
    Redis学习-发布/订阅
    Redis学习-Sentinel
    Redis学习-复制
    Redis学习-持久化
    Redis学习-Set
    Redis学习-SortedSet
    mac下使用apktool反编译
    ImageView setImageURI图片不改变NetWorkImageView 不显示的问题
    使用SharedPreference和对象流存储对象
    解决百度云推送通知,不显示默认Notification
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4841987.html
Copyright © 2011-2022 走看看