为什么split和strip在python中提供不同的输出?

为什么split和strip在python中提供不同的输出?,python,string,split,strip,Python,String,Split,Strip,我试图从字符串“罗德岛[编辑]”中提取州名 当我尝试.split('[]').str[0]时,得到了正确的结果“罗德岛”。 然而,当我尝试.rstrip(“[edit]”)时,我得到了错误的结果“罗德岛” 当我使用rstrip函数时,我弄不明白为什么左括号前的字符“d”也被删除了。rstrip没有做你想做的事情,它删除了字符串末尾指定的所有字符,所以它删除了“[”、“e”、“d”、“I”、“t”和“]”。你想要的是在['然后取第一个元素:'Rhode Island[edit]'.split('[

我试图从字符串“罗德岛[编辑]”中提取州名

当我尝试
.split('[]').str[0]
时,得到了正确的结果“罗德岛”。 然而,当我尝试
.rstrip(“[edit]”)
时,我得到了错误的结果“罗德岛”


当我使用rstrip函数时,我弄不明白为什么左括号前的字符“d”也被删除了。

rstrip
没有做你想做的事情,它删除了字符串末尾指定的所有字符,所以它删除了“[”、“e”、“d”、“I”、“t”和“]”。你想要的是在['然后取第一个元素:
'Rhode Island[edit]'.split('[')[0]
S.rstrip([chars])
->字符串或unicode

返回已删除尾随空格的字符串S的副本。 如果给定了字符而不是无,则删除字符中的字符。 如果字符是unicode,则在剥离之前将字符转换为unicode

在您的例子中,chars=['[','e','d','i','t',']'] 其中包含“d”。由给定字符组成的尾随字符串是
d[edit]

尝试正则表达式

import re
re.compile(r'\[edit\]$').sub('','Rhode Island[edit]')

rstrip()
的参数是“一个指定要删除的字符集的字符串”。请阅读文档:
'Rhode Island[edit]'。split('[]')。str[0]
将生成
AttributeError
;请验证问题的这一部分。使用
re
是最好的方法,因为它揭示了问题的意图。