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 格式化無符號十六進製制...