PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
Python
[問題] 想問string 有關slice反轉 [::-1]的問題
作者:
nicehorse06
(嘿嘿馬)
2015-07-22 23:29:04
我想問有關反轉str的問題
str="play"
print str[::-1] #yalp
print str[0:len(str):-1] #none
print str[len(str):0:-1] #yal
print str[len(str)::-1] #yalp
print str[-1:-5:-1] #yalp
如果step為正[::1],start默認為0而end默認為len(str)
我不知道為負[::-1]的第一個空白start和第二個空白end會帶入什麼
一開始以為會等於這個str[0:len(str):-1],但不是
我想請問step為負的時候,前面兩個默認是什麼
我爬了一下 相關的文章是
https://www.ptt.cc/bbs/Python/M.1291617432.A.045.html
作者: LiloHuang (十年一刻)
2015-07-22 23:50:00
預設值都是 None,可試試 str[None:None:-1]
作者:
nicehorse06
(嘿嘿馬)
2015-07-22 23:54:00
str[None:None:-1] 可以耶 那填None要怎麼想?
作者: LiloHuang (十年一刻)
2015-07-22 23:58:00
這簡單,看 Python 原始碼便知,
http://goo.gl/mL1928
在 PySlice_GetIndicesEx(...) 裡面有一段邏輯基本上就是如果 step = -1,則 defstart = length - 1defstop = -1,因此會產生新的 list 裝載相反的順序當然這個情況是在 start 跟 stop 都是 Py_None 的時候才會使用 defstart 跟 defstop,看看原始碼你就懂了 :)
作者:
nicehorse06
(嘿嘿馬)
2015-07-23 08:45:00
謝謝你,原來問題在原始碼所以Python就是ㄧ個用C語言來寫的程式囉?因此網路上說完美結合了C
作者: LiloHuang (十年一刻)
2015-07-23 09:03:00
Python 有很多實作的版本,我猜測你是使用 CPython像是 IronPython 跟 PyPy 就是不同的 interpreter 實作其實這個問題官方文件有詳載
https://goo.gl/Tr13oP
坦白說文件我花了好一回才找到 XD 看實作原始碼比較快
作者:
nicehorse06
(嘿嘿馬)
2015-07-23 09:27:00
我學的還很淺分不清楚版本,真的謝謝你用心的回答!
繼續閱讀
Re: [問題] 一行字串中如何找出第一個中文字
cphsu
[問題] python寫財務技術指標
laurie1980
[問題] Transifex 翻譯後自動下載到server
content71
[問題] 一行字串中如何找出第一個中文字
pandadao
[問題] Pyhton.tw Mail List ?
lalelee
Re: [問題] a[1:3]會馬上複製嗎?
why8ther
[問題] 關於老鼠走迷宮
msntree
Re: [問題] 滑鼠偵測
cphsu
Re: [問題] vim pdb step by step?
cphsu
Re: [問題] python email 附件中文檔名出現at00001
lalelee
Links
booklink
Contact Us: admin [ a t ] ucptt.com