Python和Stack Overflow的新用户-第一个问题
我感到困惑的是,为什么我在以下方面获得相同的find和rfind(Python 3.7.0)价值:
>>> string="ooook"
>>> string.rfind('k')
4
>>> string.find('k')
4
其中之一应该为0,不是吗?
-rfind在更高版本的Python中进行了更改吗?
-我应该导入一些东西以使用find和rfind吗?
-我的电脑出现本地问题吗?
答案 0 :(得分:1)
如果您使用的是ipython(我可以热烈推荐),则可以在命令前键入??
,以查看其文档字符串。
对string.rfind
这样做:
文档字符串:
S.rfind(sub [,start [,end]])-> int
返回 S中找到子字符串sub的最高索引, 这样子包含在S [start:end]中。可选的 参数start和end被解释为切片符号。
失败时返回-1。
类型:builtin_function_or_method
和string.find
:
文档字符串:
S.find(sub [,start [,end]])-> int
返回 S中找到子字符串sub的最低索引, 这样子包含在S [start:end]中。可选的 参数start和end被解释为切片符号。
失败时返回-1。
类型:builtin_function_or_method
我大胆地强调了重要部分。
这意味着,如果只找到一个子字符串(即您的情况下为'k'
),则两者都将返回相同的索引。
如果您仍然不确定str.rfind
和str.find
的区别,请尝试以下相同的事情:
string = 'kooook'
希望能帮助您编写愉快的代码!
答案 1 :(得分:0)
据我所知,rfind()
与find()
一样,但是返回最后一个索引。
只有一个“ k”,两个返回相同。 带有“ o”的结果将不同。