Bagaimanakah saya boleh mencari Kejadian ke-n bagi Subrentetan dalam Python?

Linda Hamilton
Lepaskan: 2024-10-20 07:23:29
asal
647 orang telah melayarinya

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

Mencari Kejadian ke-n Subrentetan dalam Python dengan Cekap

Mencari indeks kejadian ke-n subrentetan dalam Python menimbulkan tugas yang nampaknya mudah untuk peminat pengekodan . Untuk mencapai matlamat ini dengan cara yang paling Pythonic, mari kita terokai pelbagai pendekatan.

Kaedah Iteratif untuk Kejadian Tidak Bertindih

Satu pendekatan yang mudah dan cekap ialah mencari kejadian secara berulang sehingga yang ke-n ditemui:

<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>
Salin selepas log masuk

Fungsi ini berulang melalui timbunan jerami dan menambah indeks permulaan mengikut panjang jarum sehingga kejadian ke-n ditemui.

Berulang Kaedah untuk Kejadian Bertindih

Jika kejadian bertindih perlu dipertimbangkan, pendekatan berulang boleh diubah suai:

<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>
Salin selepas log masuk

Fungsi ini menambah indeks permulaan sebanyak 1 dan bukannya panjang jarum , membolehkannya mencari kejadian bertindih.

Kedua-dua kaedah mematuhi prinsip kesederhanaan, kerataan dan kebolehbacaan Python, menjadikannya sesuai untuk penyelesaian Pythonic untuk masalah ini.

Atas ialah kandungan terperinci Bagaimanakah saya boleh mencari Kejadian ke-n bagi Subrentetan 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan