在没有内置函数的情况下查找字符串中的最后一个字符

时间:2015-11-09 16:35:56

标签: python python-2.7

我需要在Python 2.7中创建一个不使用任何内置函数来查找字符串中最后一个字符的函数。它应该像:

string="This is a string with plenty of eeeeees"
string.rfind("e")

.rfind必须替换为代码中创建的函数,如:

def lastocc(string, char):
    # Function code

3 个答案:

答案 0 :(得分:3)

下面的代码将遍历您的字符串,如果它找到匹配的字符,则更新found_at变量及其在字符串中的索引。如果字符串中不存在字符,它还使用返回-1的常用习语。

def last_occurence(s, char):
    found_at = -1
    index = 0
    for s_char in s:
        if s_char == char:
            found_at = index
        index += 1

    return found_at

如果您可以使用内置的len(),则可以从字符串的末尾开始迭代,并使用length-negative_index来代替它。

答案 1 :(得分:0)

我希望没有太多的内置函数:

    def lastocc(string, char):
       m=-1;
       i=0;
       while i>=0:
          try:
             if string[i]==char:
                m=i;
             i+=1
          except Exception:
             i=-1;
       return(m);

   print(lastocc("1234561234", "0"))

答案 2 :(得分:-1)

def lastocc(somestr, char):
    return max(i for i,c in enumerate(somestr) if c==char)

或者,如果您不想使用任何内置组件,您可以这样做:

def lastocc(somestr, char):
    if not somestr: return -1
    if somestr[-1] == char: return len(somestr)-1
    return lastocc(somestr[:-1], char)