首頁 >後端開發 >Python教學 >如何在 Python 中尋找子字串第 n 次出現?

如何在 Python 中尋找子字串第 n 次出現?

Linda Hamilton
Linda Hamilton原創
2024-10-20 07:23:29658瀏覽

How Can I Find the nth Occurrence of a Substring in Python?

在Python 中高效定位子字串第n 次出現

在Python 中尋找子字串第n 次出現的索引對於編碼愛好者來說是一個看似簡單的任務。為了以最Pythonic的方式實現這一點,讓我們探索各種方法。

非重疊出現的迭代方法

一個簡單而有效的方法是迭代搜尋出現直到找到第n 個:

<code class="python">def find_nth(haystack, needle, n):
    start = haystack.find(needle)
    while start >= 0 and n > 1:
        start = haystack.find(needle, start + len(needle))
        n -= 1
    return start</code>

此函數迭代大海撈針,並按針的長度遞增起始索引,直到找到第n 個出現的位置。

迭代重疊出現的方法

如果需要考慮重疊出現,可以修改迭代方法:

<code class="python">def find_nth_overlapping(haystack, needle, n):
    start = haystack.find(needle)
    while start >= 0 and n > 1:
        start = haystack.find(needle, start + 1)
        n -= 1
    return start</code>

此函數將起始索引加1,而不是針的長度,允許它搜尋重疊的事件。

這兩種方法都遵循 Python 的簡單性、平坦性和可讀性原則,使它們適合作為該問題的 Pythonic 解決方案。

以上是如何在 Python 中尋找子字串第 n 次出現?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn