def find_last(search, target):
for index, character in reversed(list(enumerate(search))):
if character in target:
return index
else:
return -1
假设search =“aaaaa”和target =“aa”,输出应该= 3,而不是4。 我试图获得两个字符串比较的最后位置
答案 0 :(得分:3)
目前您所做的是以相反的顺序比较search
字符串中的每个字符,并查看它是否在target
中。如果是,则过早地返回错误的索引。
相反,我建议使用str.rfind
方法:
>>> 'aaaaa'.rfind('aa')
3
str.rfind
与str.index
方法基本相同,只是它从大海捞针的右边搜索第一根针。
编辑:为了将空针处理为最右边的索引,您可以使用以下返回表达式:
def find_last(search, target):
return target and search.rfind(target) or len(search)