我对Python比较陌生,有些事情正在起作用。基本上,当我在字符串上调用str.rfind("test")时,输出与str.find("test")相同。最好给我看一个例子:

Python 2.6.5 (r265:79063, May  6 2011, 17:25:59)
[GCC 4.5.0 20100604 [gcc-4_5-branch revision 160292]] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import string
>>> line = "hello what's up"
>>> line.rfind("what")
6
>>> line.find("what")
6

据我了解,line.find的值还可以,但是line.rfind的值应为9。我是在误解这些功能还是没有很好地使用它们?

最佳答案

我认为您期望rfind返回"what"的第一个/最左边匹配项中最右边的字符的索引。它实际上返回"what“的最后/最右边匹配项中最左边字符的索引。要引用the documentation:


"ab c ab".find("ab")将是0,因为最左边的出现在最左端。"ab c ab".rfind("ab")将是5,因为最右边的出现是从该索引处开始的。

关于python - 为什么rfind和find在Python 2.6.5中返回相同的值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6674990/

10-11 19:37