请帮我清理我的功能

时间:2013-05-25 04:00:14

标签: python

这是我的职能目标:

  

定义一个过程,find_last,将两个字符串作为输入,a   搜索字符串和目标字符串,并返回最后一个位置   搜索目标字符串出现的字符串,如果没有,则为-1   发生。

Here is a link to the question.

到目前为止,这是我的功能:

def find_last(target, search):
    find = target.find(search, 0)

    if find != -1:
        targets = target.find(search, find)

        while targets != -1:
            find = find + 1
            targets = target.find(search, find)
        return find - 1
    else:
        return -1

代码返回我正在寻找return find - 1的答案,但我知道有更好的方法可以做到这一点。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:9)

您基本上实施了target.rfind(search)

答案 1 :(得分:6)

为什么不使用rfind

>>> d = "ball foo ball"
>>> f = "ball"
>>> d.rfind(f)
12

所以你的方法变成了1个班轮:)

def find_last(target, search):
    return target.rfind(search)

您可以返回target.rfind(search)并在调用方法中检查-1并正确处理。

无法抗拒引用XKCD

中的这篇精彩文章

look I am flying with Python :P