请帮助我清理我的功能

这是我的职能目标:

定义一个过程,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

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


不负相思意
浏览 155回答 2
2回答

一只斗牛犬

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

慕运维8079593

你为什么不使用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的这篇很棒的文章
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python