天天看點

python 切片詳解

Python 切片

  • 切片的文法

    • [起始:結束:步長],也可以簡化使用[起始:結束]
    #定義一個list
    >>> list_arr = ['Michael','Joker','Tracy']
    >>> list_arr[0:3]
    ['Michael', 'Joker', 'Tracy']
               

    list_arr[0:3]

    表示,從索引 開始取,直到索引

    3

    為止,擔不包括索引

    3

    。即索引 ,

    1

    2

    ,正好是3個元素。
  • 如果第一個索引是 ,還可以省略
  • 也可以從索引1開始,取出2個元素出來
    >>> list_arr[1:3]
    ['Joker', 'Tracy']
    >>> 
               
  • 類似的,既然python支援

    list_arr[-1]

    取倒數第一個元素,那麼它同樣支援倒數切片,那咱們試一試:
    >>> list_arr
    ['Michael', 'Joker', 'Tracy']
    >>> list_arr[-1]
    'Tracy'
    >>> list_arr[-1:]
    ['Tracy']
    >>> list_arr[:-1]
    ['Michael', 'Joker']
    >>> list_arr[:-2:]
    ['Michael']
    >>> list_arr[-2:]
    ['Joker', 'Tracy']
    >>> list_arr[-2:-1]
    ['Joker']
    >>> 
               
  • 字元串處理
    s = 'hello word!'
    print(s[4])
    
    print(s)
    
    print(s[3:7])  # 結果元素裡包含下标 3,不含下标 7
    
    print(s[:]) # 取出所有元素(沒有起始位和結束位之分),預設步長為1
    
    print(s[1:]) # 從下标為1開始,取出 後面所有的元素(沒有結束位)
    
    print(s[:5])  # 從起始位置開始,取到 下标為5的前一個元素(不包括結束位本身)
    
    print(s[:-1]) # 從起始位置開始,取到 倒數第一個元素(不包括結束位本身)
    
    print(s[-4:-1]) # 從倒數第4個元素開始,取到 倒數第1個元素(不包括結束位本身)
    
    print(s[1:5:2]) # 從下标為1開始,取到下标為5的前一個元素,步長為2(不包括結束位本身)
    
    # python 字元串快速逆置
    print(s[::-1])  # 從後向前,按步長為1進行取值