关于python行为笨拙的rstrip:';HelloWorld';。rstrip(';World';)删除';他';
我最近开始学习python,在rstrip中遇到了一个尴尬的行为 我的理解是str.rstrip()将在遇到参数中的某个字符时立即删除所有字符关于python行为笨拙的rstrip:';HelloWorld';。rstrip(';World';)删除';他';,python,string,Python,String,我最近开始学习python,在rstrip中遇到了一个尴尬的行为 我的理解是str.rstrip()将在遇到参数中的某个字符时立即删除所有字符 >>> a = 'HelloWorld' >>> a.rstrip('l') 'HelloWorld' >>> a = 'HelloWorld' >>> a.rstrip('World') 'He' 我完全被我得到的结果搞糊涂了 第一个代码不应该生成“He”吗?strip方法会去
>>> a = 'HelloWorld'
>>> a.rstrip('l')
'HelloWorld'
>>> a = 'HelloWorld'
>>> a.rstrip('World')
'He'
我完全被我得到的结果搞糊涂了
第一个代码不应该生成“He”吗?strip方法会去除作为参数传递的字符串中的任何字符。由于
l
和o
在的“世界”
中,它们也会被剥离
从:
字符串中的字符将从调用此方法的字符串末尾剥离
。。。剥离的不是传递的字符串本身,而是它的字符 strip方法去除作为参数传递的字符串中的所有字符。由于
l
和o
在的“世界”
中,它们也会被剥离
从:
字符串中的字符将从调用此方法的字符串末尾剥离
。。。剥离的不是传递的字符串本身,而是它的字符 它似乎从右边开始,遇到不在作为参数传递的集合中的字符时立即停止。它似乎从右边开始,遇到不在作为参数传递的集合中的字符时立即停止。请查看
>>> a = 'HelloWorld'
>>> a.rstrip('l')
'HelloWorld'
>>> a = 'HelloWorld'
>>> a.rstrip('World')
'He'
rstrip
删除其参数中位于所修改字符串右侧的所有字符。因此,由于“世界”都是由“世界”中的字符组成的,所以这些字符被删除e
不是,所以它停在那里
另一方面,在第一次调用中,l
实际上不在字符串的右侧(rstrip
),因此没有任何内容被删除。请查看
rstrip
删除其参数中位于所修改字符串右侧的所有字符。因此,由于“世界”都是由“世界”中的字符组成的,所以这些字符被删除e
不是,所以它停在那里
另一方面,在第一次调用中,l
实际上不在字符串的右侧(rstrip
),因此不会删除任何内容。从字符串末尾删除提供给rstrip()
的字符集中的字符(如果已传递,而不是None
)rstrip()
在字符串中找到不在剥离字符集中的字符后立即停止
因此,对于第一个示例,字符串a
中的最后一个字符是'd'
,它不在传递给rstrip()
的剥离字符集中。因此,不会从原始字符串中剥离任何内容
在第二个示例中,可以从字符串末尾删除集合'World'
中的任何字符。您将注意到,子字符串'lloWorld'
包含剥离字符中存在的字符,因此所有这些字符都将被删除,留下'He'
作为最终结果
但是,请考虑在字符串末尾有一个字符,它不在集合<代码> Word 中,例如完全停止。< /P>
>>> 'HelloWorld'.rstrip('World')
'He'
>>> 'HelloWorld.'.rstrip('World')
'HelloWorld.'
没有任何内容被剥离,因为。
不在'World'
从字符串末尾删除提供给rstrip()
的字符集中存在的字符(如果已传递,而不是None
)rstrip()
在字符串中找到不在剥离字符集中的字符后立即停止
因此,对于第一个示例,字符串a
中的最后一个字符是'd'
,它不在传递给rstrip()
的剥离字符集中。因此,不会从原始字符串中剥离任何内容
在第二个示例中,可以从字符串末尾删除集合'World'
中的任何字符。您将注意到,子字符串'lloWorld'
包含剥离字符中存在的字符,因此所有这些字符都将被删除,留下'He'
作为最终结果
但是,请考虑在字符串末尾有一个字符,它不在集合<代码> Word 中,例如完全停止。< /P>
>>> 'HelloWorld'.rstrip('World')
'He'
>>> 'HelloWorld.'.rstrip('World')
'HelloWorld.'
由于
'.
不在'World'
字符串中,因此未剥离任何内容。rstrip
返回已删除尾随字符的字符串副本
因此,a.rstrip('l')
不会改变任何东西,因为“l”不在末尾
但是,a.rstrip('World')
将从文本中删除字符串“World”中的所有字符,因为字符串“World”位于末尾
检查此项以进一步阅读:
string.rstrip
返回删除尾随字符的字符串副本
因此,a.rstrip('l')
不会改变任何东西,因为“l”不在末尾
但是,a.rstrip('World')
将从文本中删除字符串“World”中的所有字符,因为字符串“World”位于末尾
检查以下内容以进一步阅读:Python中的rstrip()
使用一组字符作为参数
>>> a = 'HelloWorld'
>>> a.rstrip('l')
'HelloWorld'
>>> a = 'HelloWorld'
>>> a.rstrip('World')
'He'
如果未提供参数,则默认为空白
当且仅当它在输入字符串的最右边遇到您的字符集中提到的字符时,它才开始从右侧剥离字符集
这就解释了为什么在第一个示例中没有剥离l
在第二个示例中,World
与参数中提供的字符集匹配。所以,世界被剥离了,同时也被剥离了中的双l
和o
<