zoukankan      html  css  js  c++  java
  • python利器之切片

     切片

    切片的语法表达式为:[start_index : end_index : step],其中:

    • start_index表示起始索引
    • end_index表示结束索引
    • step表示步长,步长不能为0,且默认值为1

    切片操作是指按照步长,截取从起始索引到结束索引,但不包含结束索引(也就是结束索引减1)的所有元素。

    • python3支持切片操作的数据类型有listtuplestringunicoderange
    • 切片返回的结果类型与原对象类型一致
    • 切片不会改变原对象,而是重新生成了一个新的对象

    下面列表为列:

                                                     图列一

    一个简单的例子:

    alist=['A','B','C','D','E','F']
    ①alist[0:4:1]
    ②alist[0:4] 结果:['A', 'B', 'C', 'D'] ①和②结果一样,因为步长有默认值为1 alist[0:4:2] 结果:['A', 'C']

    省略start_index,保留end_index,这样会从第一个元素开始,切到end_index - 1的元素为止

    alist[:4]  
    ['A', 'B', 'C', 'D']   

    保留start_index,但省略end_index,这样会从起始索引开始,切到最后一个元素为止:

    alist[2:]
    ['C', 'D', 'E', 'F']

    省略start_indexend_indexstep,这样就表示就表示切片整个序列,也就是复制出了一个新的序列:

     alist[:]
    ['A', 'B', 'C', 'D', 'E', 'F']

    省略start_indexend_index,但保留step,表示对整个序列,按照步长整除的规则取值:

    alist[::2]
    ['A', 'C', 'E']

    此时,如果我们将步长设为-1,那么就可以很方便的得到一个反序的序列了

     alist[::-1]
    ['F', 'E', 'D', 'C', 'B', 'A']

    下面这四种表达式是等价的:

    alist[0:4]
    ['A', 'B', 'C', 'D']
    alist[0:-2]
    ['A', 'B', 'C', 'D']
    alist[-6:4]
    ['A', 'B', 'C', 'D']
    alist[-6:-2]
    ['A', 'B', 'C', 'D']

    观察图列一就可以得出,区间一致。

    切片时,一定要保证start_indexend_index的方向与步长step的方向同向,否则会切出空的序列

    alist[0:4:-1]
    []
    alist[3:0:2]
    []

    利用切片功能,编写一个函数trim(str),类似Python中的strip()功能——去除字符串首尾的空格:

    >>> def trim(str):
    ...     while str[:1]==' ':
    ...             str = str[1:]
    ...     while str[-1:] == ' ':
    ...             str = str[:-2]
    ...     return str
    ...
    >>> trim('  abc  hh  welcome!      ')
    'abc  hh  welcome!'
  • 相关阅读:
    POJ 1659 Frogs' Neighborhood
    zoj 2913 Bus Pass(BFS)
    ZOJ 1008 Gnome Tetravex(DFS)
    POJ 1562 Oil Deposits (DFS)
    zoj 2165 Red and Black (DFs)poj 1979
    hdu 3954 Level up
    sgu 249 Matrix
    hdu 4417 Super Mario
    SPOJ (BNUOJ) LCM Sum
    hdu 2665 Kth number 划分树
  • 原文地址:https://www.cnblogs.com/ltb6w/p/11145034.html
Copyright © 2011-2022 走看看