Bagaimana untuk Mencari Kejadian Ke-N String dalam Python?

DDD
Lepaskan: 2024-10-20 07:30:29
asal
624 orang telah melayarinya

How to Find the Nth Occurrence of a String in Python?

Mencari Kejadian Nth String dalam Python

Mengenal pasti indeks kejadian n' substring dalam rentetan ialah tugas biasa dalam pengaturcaraan. Walau bagaimanapun, kaedah carian terbina dalam Python tidak menyediakan cara yang mudah untuk menentukan nombor kejadian.

Penyelesaian:

Daripada bergantung pada kaedah carian secara langsung, berikut ialah penyelesaian Pythonic yang secara berulang mengesan subrentetan dan menambah bilangan kejadian sehingga mencapai nilai yang dikehendaki:

<code class="python">def find_nth(haystack: str, needle: str, n: int) -> int:
    """Find the index of the nth occurrence of needle in haystack."""
    start = haystack.find(needle)
    while start >= 0 and n > 1:
        start = haystack.find(needle, start+len(needle))
        n -= 1
    return start</code>
Salin selepas log masuk

Penggunaan:

Untuk mencari indeks bagi kejadian kedua subrentetan "foofoo" dalam rentetan "foofoofoofoo", anda akan memanggil:

<code class="python">find_nth("foofoofoofoo", "foofoo", 2)</code>
Salin selepas log masuk

Ini akan mengembalikan indeks 6, sepadan dengan kedudukan permulaan subrentetan "foofoo" kedua.

Pertimbangan untuk Kejadian Bertindih:

Jika anda perlu mencari indeks kejadian bertindih ke-n bagi subrentetan, anda boleh mengubah suai fungsi find_nth untuk menambah kedudukan permulaan dengan 1 bukannya panjang jarum:

<code class="python">def find_nth_overlapping(haystack, needle, n):
    """Find the index of the nth overlapping occurrence of needle in haystack."""
    start = haystack.find(needle)
    while start >= 0 and n > 1:
        start = haystack.find(needle, start+1)
        n -= 1
    return start</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mencari Kejadian Ke-N String dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!