请帮我清理我的功能

You*_*ood 0 python

这是我的功能目标:

定义一个过程,find_last它将输入两个字符串,一个搜索字符串和一个目标字符串作为输入,并返回搜索字符串中出现目标字符串的最后一个位置,或者-1是否没有出现.

这是问题的链接.

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

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
Run Code Online (Sandbox Code Playgroud)

代码返回我正在寻找的答案return find - 1,但我知道有更好的方法去做这件事.

任何帮助将不胜感激!

Ble*_*der 9

你基本上实现了target.rfind(search).


Sri*_*aju 6

你为什么不用rfind

>>> d = "ball foo ball"
>>> f = "ball"
>>> d.rfind(f)
12
Run Code Online (Sandbox Code Playgroud)

所以你的方法成为1班轮:)

def find_last(target, search):
    return target.rfind(search)
Run Code Online (Sandbox Code Playgroud)

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

无法抗拒引用XKCD的这篇精彩作品

看我用Python飞行:P