簡體   English   中英

如何查找字符串中字符第n次出現的索引

[英]How to find the index of the nth ocurrence of a character in a string

"/home/hernan/PycharmProjects/test1/tensor.py".find('e')   #Returns 4
"/home/hernan/PycharmProjects/test1/tensor.py".find('e',2) #Also 4
"/home/hernan/PycharmProjects/test1/tensor.py".find('e',3) #Also 4

我想要類似的東西:

"/home/hernan/PycharmProjects/test1/tensor.py".find('e',2) #Returns 7
"/home/hernan/PycharmProjects/test1/tensor.py".find('e',3) #Returns 14

這些是'e'第二次第三次出現。

Python 3.x中是否有任何內置函數來獲取字符串中字符第n次出現的索引?

為什么不只使用for循環?

def find_nth(text, sub, nth):
    start = -1
    for i in range(nth):
        start = text.find(sub, start + 1)
        if start == -1:
            break
    return start


find_nth("/home/hernan/PycharmProjects/test1/tensor.py", 'e', 2) # returns 7
find_nth("/home/hernan/PycharmProjects/test1/tensor.py", 'e', 3) # returns 24

str.find函數中的第二個參數表示開始索引。 不是要開始查找的事件的索引。 'find a char'.find('a', 3)等同於'find a char'[3:].find('a') + 3 (一種;不處理搜索字符串中不存在的字符串在其中搜索的完整字符串)。 您必須為此編寫自己的函數。

def search(full, toFind, occ):
    ret = 0
    while occ:
        ret = full.find( toFind, ret ) + 1
        occ -= 0
        if ret == -1:
            return -1
    return ret

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM