使用Python的時候,發現了一個strip()指令的坑。
之前對strip(X)的理解是:去除開頭和結尾包含的"X"字串,如果不包含則不去除。
這裡面的一個坑是:python對字串X的處理是一個set,而不是一個固定順序的字串。也就是說,是把X拆開成由單個字母組成的set來看待的,如果被strip()的字串在左右邊包含任意一個該set中的字符,都會被strip()掉。範例如下:
[python] view plain copy >>> a="abc_1213" >>> a.strip('abc_') '1213' >>> a.strip('ba_c') '1213' >>> a.strip('zxcvbnmasdfghjklpoiuytrewq') '_1213' >>> a.strip('zxcvbnmasdfg_hjklpoiuytrewq') '1213'
最開始,個人的理解是第一種情況。 strip('abc_')之後,只會移除左邊的"abc_"。
實驗之後,確認,是把要strip的字串當做了一個set來處理的。只要是左右兩邊的字元在該set內,都會被逐一移除,直到遇到第一個不在該set內的字元為止。
【相關推薦】
1. Python免費影片教學
2. python基礎入門之教你如何用strip()函數去空格\n\r\t
3. 詳解python中strip()和split()的使用方法
以上是python中strip()鮮為人知的陷阱的詳細內容。更多資訊請關注PHP中文網其他相關文章!