比较字符串

问题描述:

def find_last(search, target): 
    for index, character in reversed(list(enumerate(search))): 
     if character in target: 
      return index 
     else: 
      return -1 

假设搜索=“AAAAA”和目标=“AA”,输出应该= 3,不是4 我试图获得最后的位置,这两个字符串比较比较字符串

目前您在做的是将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) 
+0

,但如果我有一个字符串“22222222”,和目标=” “,输出应该是9,而不是-1。但是rfind并没有考虑到这种情况 –

+0

@SpencerJosephs啊,我明白了。如果目标是空字符串,我编辑了答案以使其返回搜索字符串的长度。 – Shashank