问题背景
从许多中文的参考文献上,rstrip() 函数的功能被简单描述为 :删除字符串末尾的指定字符(默认为空格),我的理解是,直接去掉末尾指定的字符序列,如我传入的是d,则会去掉末尾的字符d(如果存在),如果传入了字符ad,则去掉末尾的字符ad(如果存在),直到我们开发的服务遇到了一个非常奇怪的bug之后,下面是奇怪问题的复现过程:
>>> s = 'hello_world' >>> s.rstrip('d') # 去除末尾的字符d 'hello_worl' >>> >>> s.rstrip('ld') # 去除末尾的字符 ld 'hello_wor' >>> >>> s.rstrip('ad') # 去除末尾字符 ad 'hello_worl' # ??? 为什么 d 被去掉了? >>>
问题解决
总结一下
rstrip和lstrip方法删除的不是传入的整个字符,而是以单个字符为单位删除,如果你传入了一段字符串,如果这段字符串中任何一个字符出现在需删除字符串的开头或末尾,则都将会被删除。如:
>>> s = 'helloworlld' >>> s.rstrip('ld') 'hellowor'
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/216813.html原文链接:https://javaforall.net
