最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • python列表切片规则是什么?怎么做?

    正文概述    2020-10-21   250

    从字面我们可以了解到关于python切片,肯定是和分割有关系,那具体是怎么使用的呢?有没有小伙伴在脑海中有个印象?话不多说,还是由小编给大家展示下最简单的案例,教大家快速上手,赶紧来了解下呀~

    Python的列表还有一种用法通过索引值可以一次获取多个元素,这种叫做列表分片(slicing),分片就是从原有的列表中切分一部分下来,但是原来的列表保持不变。

    示例图片:

    python列表切片规则是什么?怎么做?

    从执行结果中我们可以看到mynames的数据拷贝的names的index为1和2的元素即Jack,Rose,names[1:3]就是切分列表names中的index为1和2的元素,但是不包含index为3的元素

    我们来看一组代码:

    ```python
    # 以li = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]为例
    ```

    1. 当所需要的的元素是某单个元素时

    ```python
    print(li[1])
    # 2
    print(li[9])
    # 10
    print(li[-5])
    # 6
    # 前面已经说过了,当我们需要取出列表中某一个值的时候就可以使用它的索引来进行取出
    ```

    2. 当所需要将列表进行倒置时

    ```python
    print(li[::-1])
    # [10,9,8,7,6,5,4,3,2,1]
    ```

    3. 当起始索引和结束索引都为正的时候

    ```python
    print(li[1:5])
    # [2,3,4,5]
    # 步长为空默认为1 从左往右取值 起始索引1到结束索引5同样表示的是从左往右取值
    print(li[8:2])
    # []
    """
    没有错 就是空列表,步长省略表示默认为1,从左往右取值,但是起始索引和结束索引同为正,却是从8到2表示从右往左取值,所以为空
    """    
    print(li[1:5:-1])
    # []
    """
    同样是空列表,因为当步长为-1表示从右往左取值,而起始索引和结束索引则都为正表示从左往右取值,两者矛盾取不到值
    """
    print(li[:5:-1])
    # [10,9,8,7]
    """
    步长为-1,表示从右往左取值,而起始索引没有写表示从起始开始,而因为是是从右往左取值,所以这个起始位置就是10,及索引为9到索引为5(不包括5)之间的元素
    """
    ```

    4. 当起始索引和结束索引都为负的时候

    ```python
    print(li[-1:-7])
    # []
    """
    步长默认为1,从左往右取值,而起始索引-1到结束索引-6决定了从右往左取值,两者矛盾,所以为空。
    索引-1在-6的右边
    """
    print(li[-5::-1])
    # [6, 5, 4, 3, 2, 1]
    # 步长为-1,从右往左取值,从起始索引-5开始,一直取到“起点”。
    ```

    5. 起始索引和结束索引正(+)负(-)混合索引的情况

    ```python
    print(li[1:-7:-1])
    #  []
    '''
    起始索引1在结束索引-7的左边,因此从左往右取值,但步长为-1则决定了从右往左取值,两者矛盾,因此为空。
    '''
    print(li[-1:7:-1])
    # [10, 9]
    # 起始索引-1在结束索引7的右边,因此从右往左取值,而步长-1同样决定了从右往左取值,因此结果正确
    ```

    6. 多层列表切片

    ```python
    print(li[:9][3:7][-1:])
    # [7]
    """
    相当于:
    li[:9]          =[1, 2, 3, 4, 5, 6, 7, 8, 9]
    li[:9][3:7]     =[4, 5, 6, 7]
    li[:9][3:7][-1:]=[7]
    理论上是可以无限的进行多层切片,只要上一次的切片结果不为空
    """
    ```

    7. 取奇偶数

    ```python
    # 我们可以通过切片来进行取出li中的奇数和偶数
    # 奇数
    print(li[::2])
    # [1, 3, 5, 7, 9]
    print(li[1::2])
    # [2, 4, 6, 8, 10]

    8. 替换一部分值

    ```python
    lip[2:6] = [6,6,6,6]
    print(li)
    # [1, 2, 6, 6, 6, 6, 7, 8, 9, 10]
    ```

    总结:

    列表切片的方向取决于起始索引、结束索引以及步长,当起始索引在结束索引右边是就是从右往左取值,同理反之。

    当列表通过索引取单个元素时返回的是这个元素而非一个列表,当取连续的几个值时返回的是一个列表。

    如需了解更多python实用知识,点击进入起源地模板网教学中心


    起源地下载网 » python列表切片规则是什么?怎么做?

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元