繁体   English   中英

Python rstrip() 工作奇怪

[英]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 的工作原理:

  1. 期望括号中的字符串(更像是字符集)

  2. 如果没有给出值,它将删除字符串右侧的空格,即'Tons of whitespace on the right '.rstrip()

    '右边的空白音调'

  3. 如果给出了一个值,那么它会从给定字符串的右侧删除每个字符的每个出现,即在您的第一个示例中

    '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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM