[英]Python rstrip() works strange
我遇到了对我来说非常奇怪的问题。
str.rstrip([chars])
在一个例子中,对我来说真的很奇怪。 (或者也许我错过了一些重要的文档部分)。
>>> 'car_id__isnull'.rstrip('__isnull')
>>> 'car_id' # works fine
>>> 'last_success__isnull'.rstrip('__isnull')
>>> 'last_succe' # I do not understand why this happened ?
提前致谢。
发生这种情况是因为您误解了rstrip
的作用。 它从字符串的右侧删除所有出现的任何给定字符。
文档在描述这类事情方面非常出色。
以下是 rstrip 的工作原理:
期望括号中的字符串(更像是字符集)
如果没有给出值,它将删除字符串右侧的空格,即'Tons of whitespace on the right '.rstrip()
'右边的空白音调'
如果给出了一个值,那么它会从给定字符串的右侧删除每个字符的每个出现,即在您的第一个示例中
'car_id__isnull'.rstrip('__isnull')
它基本上说“好的,所以我应该从右边删除的字符是“_,i,s,n,u,l”,所以它就是这样做的。因为“car_id”以“ d" (不包括在 rstrip 的括号中,它只是在那里结束。
但在第二个例子中,
'last_success__isnull'.rstrip('__isnull')
从这次开始,它应该删除字符为“_,i,s,n,u,l”,当然它删除了“__isnull”,因为它包含在rstrip中,但它也删除了“ss”在“last_success”的末尾,因为它以字符“s”结尾,该字符包含在 rstrip 的要删除的字符列表中。
我确实希望这个答案对某人有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.