python中strip是什么意思啊_Python中的strip()的理解
在看到Python中strip的時候產(chǎn)生了疑問
strip() 用于移除字符串頭尾指定的字符(默認(rèn)為空格)
開始測試:
>>> s = 'ncy_123.python'
>>> s.strip('123')
'ncy_123.python'
疑問:明明指定要刪除123,但是為什么返回值根本沒有變,繼續(xù)測試
>>> s.strip('andyandc_3g1t2m')
'.pytho'
>>> s.strip('_3g1t2m')
'ncy_123.python'
兩個測試返貨結(jié)果不一樣
這時候發(fā)現(xiàn),字符串s在使用strip()的時候,只有在第一個字符被刪掉之后,再去匹配后邊的字符。
原理應(yīng)該是這樣:s.strip('andyandc_3g1t2m') 根據(jù)strip中的字符開始匹配字符串s,第一個為n,開始查找strip,有n,此時 s = 'cy_123.python',繼續(xù)匹配strip如果有c則刪掉c。此時如果沒有找到c,那么直接返回字符串s = 'cy_123.python'。 對理論進(jìn)行測試:
>>> s.strip('anyb_3g1t2m')
'cy_123.pytho'
測試成功 結(jié)論就是在字符串前面(或者后邊)的字符未被刪除之前,就算該字符后邊與strip匹配也不進(jìn)行刪除,并且strip()中的字符是無序的只要能匹配就可以刪掉,不論前后。 所以
>>> s.strip('anyb_3g1t2m')
'cy_123.pytho'
>>> s.strip('_3g2t2manyb')
'cy_123.pytho'
返回結(jié)果是一樣的。
那么對s.lstrip()和s.rstrip()就好理解了
s.lstrip()是從左邊第一位開始進(jìn)行匹配,有則刪除,如果第一位未刪除,即使后邊匹配,仍然無效。 eg.
>>> s.lstrip('ycaglkjhg_123')
'ncy_123.python'
>>> s.rstrip('aothpy.321')
'ncy_123.python'
不管從左還是右,只要前邊的字符未匹配刪除成功,后邊保持原樣。
到這時,仍然有個疑問,字符串的左右是從字符串的0位置和-1位置,那如果正好全部匹配,會不會刪掉整個字符串。
eg.
>>> s.lstrip('anbc.y_3t2h1op')
''
答案是會的,只不過是從左或者從右開始。
總結(jié)
以上是生活随笔為你收集整理的python中strip是什么意思啊_Python中的strip()的理解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 散列表的设计与实现_散列表:如何实现wo
- 下一篇: python同时输出多个值_python