关于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

你能理解了吗?

猜你喜欢

转载自www.cnblogs.com/yfish/p/12496965.html