關於python中strip方法的理解


 

1.strip方法並不是去除對稱字符串的。

比如

a="123abcd321"

a.strip()方法的結果是abcd

有人可能就把strip方法理解成了“可以去除字符串兩端對稱字符”的一種方法。這么理解是錯誤的。

2.strip方法既可以去除字符串左側的字符也可以去除字符串右側的字符,也可以兩端同時去除。

a="123abcd"

a.strip(“123”)的結果是abcd

b="abcd123"

b.strip("123")的結果是abcd

strip方法的結果其實是先執行lstrip方法再執行rstrip方法,為了語義清楚,你如果要去除字符串右側的字符,最好用rstip,左側的就用lstrip

3.strip方法並不是匹配子串來刪除字符串的


如果是匹配子串的,那么就無法解釋下面的結果

a="123abcd"

a.strip("1234")的結果是abcd

4.strip方法真正的執行流程是這樣的:把strip中的參數拆分成一個個的字符,先執行lstrip方法,從字符串的左側找起,如果有字符是strip參數中的任意一個字符,那么就從字符串中刪除掉這個字符直到找到一個字符,這個字符不屬於strip參數中的任意一個字符。再執行strip方法,從字符串的右側找起,如果有字符是strip參數中的任意一個字符,那么就從字符串中刪除掉這個字符直到找到一個字符,這個字符不屬於strip參數中的任意一個字符。

b="ccfffoffc_ahfdof.cof"

b.strip(".cof")

這個例子,先執行lstrip的方法的結果是_ahfdof.cof

在_ahfdof.cof的基礎上執行rstrip方法

結果是_ahfd

 

最后在網上找到一個題目,對於理解strip方法很有用處

a="movies.csv"

a.strip(".csv")

的結果是什么?

預期的結果是movies

但實際上結果是movie

你能理解了嗎?

所以不要用strip方法來獲取文件名,有坑啊!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM