这是我的职能目标:定义一个过程,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,但是我知道有一个更好的方法可以做到这一点。
2 回答
慕运维8079593
TA贡献1876条经验 获得超5个赞
你为什么不使用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的这篇很棒的文章
添加回答
举报
0/150
提交
取消