Python 切片操作符

2021-06-22 04:34:05 字數 2684 閱讀 2295

python之切片操作符(slice) 

字串、列表、元組在python中都符合「序列」這一特徵,只要符合這一特徵的變數我們都可以用切片(slice)去訪問它們的任意部分。我們可以把序列想像成乙個佇列,我可能需要前面三位、後面三位、或從第三位後的四位、或隔乙個取乙個等,我們用切片操作符來實現上述要求。 

切片操作符在python中的原型是 

[start:stop:step] 

即:[開始索引:結束索引:步長值] 

開始索引:同其它語言一樣,從0開始。序列從左向右方向中,第乙個值的索引為0,最後乙個為-1 

結束索引:切片操作符將取到該索引為止,不包含該索引的值。 

步長值:預設是乙個接著乙個切取,如果為2,則表示進行隔一取一操作。步長值為正時表示從左向右取,如果為負,則表示從右向左取。步長值不能為0 

假設: 

li = [1,2,3,4,5,6,7] 

print li[2]                      #輸出3,因為索引為2的值為3 

print li[2:4]                   #輸出[3,4]。從索引2開始取,到索引為4的5為止(不含5) 

print li[-1]                     #輸出7,反向取第乙個 

print li[-1:-5:2]              #輸出空列表,從反向第1個向反向第5個取,但步長為2,表示正向相隔二個取值。 

print li[-1:-5:-2]            #輸出[7,5] 

有時我們可以省略開始索引、結束索引,如: 

li = [1,2,3,4,5,6,7] 

print li[1:]           #輸出[2,3,4,5,6,7],省略終止索引,表示取起始索引之後的所有值,等效於li[1:len(li)] 

print li[:3]           #輸出[1,2,3],省略起始索引,表示從0開始取,等效於li[0:3] 

print li[:]            #輸出[1,2,3,4,5,6,7],省略起始索引、終止索引、步長值表示取全部,等效於li[0:len(li):1] 

print li[::]           #輸出[1,2,3,4,5,6,7],省略起始索引、終止索引、步長值表示取全部,等效於li[0:len(li):1] 

print li[::-1]        #輸出[7,6,5,4,3,2,1],省略起始索引、終止索引,步長值為-1,表示反向獲取 

所以,不要為str類沒有substring方法而感到困惑,用切片操作符吧。 

def reverse(text):

''' '''

return text[::-1]

def is_palindrome(text):

text = text.lower()

text = text.replace(' ','')#remove blank space

for char in text.punctuation:

text = text.replace(char,'')

return text == reverse(text)

def main():

string = input("please input a string: ")

if is_palindrome(string):

print("yes, '' is palindrome!".format(string))

else:

print("no, '' isn't palindrome!".format(string))

if __name__ == '__main__':

main()

else:

pring("user_input.py was imported.")

>>> array = [1, 2, 5, 3, 6, 8, 4]

index為: 0, 1, 2, 3, 4, 5, 6

array[start : stop : step]

>>> array[:2]

[1, 2] #輸出[array[0],array[2])的元素, 不包括array[2]

>>> array[2:]

[5, 3, 6, 8, 4] # 輸出從array[2]開始的所有元素

>>> array[::2]

[1, 5, 6, 4] # 從array起始到結束, 以2為步長輸出元素

>>> help(str.replace)

help on method_descriptor:

replace(...)

s.replace(old, new[, count]) -> str

return a copy of s with all occurrences of substring

old replaced by new. if the optional argument count is

given, only the first count occurrences are replaced.

>>> word = "this is a test"

>>> word.replace("is", "eez")

'theez eez a test'

>>> word

'this is a test'

python的切片(Slice)操作符

l michael sarah tracy bob jack l 0 3 從索引0開始擷取,擷取到第三個元素,即索引為2的元素 michael sarah tracy l 3 前面的0可以省略 michael sarah tracy 支援倒序擷取 從倒數第乙個擷取到倒數第二個,不包括索引為 1的元素...

Python 列表的切片操作符使用

說明 切片操作符在python中的原型是 start stop step 即 開始索引 結束索引 步長值 開始索引 同其它語言一樣,從0開始。序列從左向右方向中,第乙個值的索引為0,最後乙個為 1 結束索引 切片操作符將取到該索引為止,不包含該索引的值。步長值 預設是乙個接著乙個切取,如果為2,則表...

python操作符大全

字串轉義序列 反斜槓 單引號 雙引號 a 系統響鈴 b 退格符 f 換頁符 n 換行符 r 回車符 t 橫向製表符 v 縱向製表符 字串格式化 d 格式化十進位制整數 i 格式化十進位制整數 o 格式化八進位制整數 u 格式化無符號整型 x 格式化無符號十六進製制數 小寫 x 格式化無符號十六進製制...