標籤:

Python裡面 str[::-1] 使得字元串翻轉的原理是什麼,為什麼是兩個冒號放一起?

追問:為啥像[1:3:-1] [1:5:-1]這種就沒輸出了咧


參考python切片語法

我覺得很多人不理解這個語法是把倆冒號看成一個符號了,其實這是兩個冒號,而不是一個雙冒號符

想起一個笑話,說C有個運算符--&>叫「趨向於」的

while (x--&>0){...}

當x趨向於0的過程中執行循環。。。


給你一個例子看看:

&>&>&> a=0123456

&>&>&> a[1:5]

1234

返回結果是1234,能理解么?第一位到第五位切片(初始是0位)

&>&>&> a[1:5:2]

13

這個呢?能理解么?1-5位切片,步進為2,所以取出來是『13』

那麼問題就來了[::-1]表示的是從頭到尾,步長為-1,你感受一下。

你可以嘗試吧-1改一下,比如[::-2]


第一個冒號兩側的數字是指截取字元串的範圍,省略是完全截取原來的字元串.

第二個冒號後面是指截取的步長, 比如2是指每2個截取一個. -1指從倒數開始截取.


Sequence[start:end:step]

step的正負決定了切片的方向。

step為正,左→右,若start&>end,結果為空,因為start右邊無值

step為負,右→左,若start&

若start為空,則表示最開始位置

若end為空,則表示最後位置

若start和end都為空,則表示全部元素。

理解還得看代碼:


同學,這是Python中的「分片」與「步長」。

《Python基礎教程》的25頁。

廖雪峰的「Python2.7教程」。

你可以在以上兩個教程中找到答案。


推薦閱讀:

python如何做一個實時檢測的服務端?
從這個問題「class 'bs4.element.Tag'是什麼類型」 展開說明。
Python能做什麼?需要什麼學習前提知識,如果要找工作,還需要學習什麼知識?
Python爬蟲實戰——免費圖片 - Pixabay
給妹子講python--17函數的基本特徵

TAG:Python |