Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mengira Kejadian Substring dalam Python, Termasuk Kejadian Bertindih?

Bagaimanakah Saya Boleh Mengira Kejadian Substring dalam Python, Termasuk Kejadian Bertindih?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-09 00:32:08590semak imbas

How Can I Count Substring Occurrences in Python, Including Overlapping Instances?

Menentukan Kekerapan Subrentetan Dalam Rentetan

Dalam Python, mengira kejadian subrentetan tertentu dalam rentetan ialah tugas biasa. Begini cara anda boleh mencapai ini:

Menggunakan string.count()

Kaedah str.count(substring) menyediakan pendekatan mudah untuk mengira kejadian subrentetan. Ia mengembalikan bilangan contoh subrentetan yang tidak bertindih dalam rentetan. Contohnya:

>>> 'foo bar foo'.count('foo')
2

Kaedah ini secara berkesan melintasi rentetan dan menambah pembilang setiap kali ia menemui subrentetan yang ditentukan. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa ia hanya mempertimbangkan kejadian tidak bertindih.

Mencapai Kiraan Subrentetan Bertindih

Jika anda memerlukan kiraan subrentetan bertindih, anda perlu meneroka pendekatan alternatif. Satu pilihan ialah memanfaatkan kuasa ungkapan biasa:

import re

pattern = re.compile('(substring)')
count = len(re.findall(pattern, 'this is a substring test'))

Kaedah ini menggunakan corak ungkapan biasa untuk memadankan semua kejadian subrentetan, termasuk yang bertindih. Ia menangkap padanan sebagai senarai dan mengembalikan kiraan.

Kesimpulan

Sama ada mengira kejadian subrentetan tidak bertindih atau bertindih, kaedah str.count() dan ungkapan biasa menyediakan penyelesaian yang berkesan untuk tugas pengaturcaraan biasa ini.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengira Kejadian Substring dalam Python, Termasuk Kejadian Bertindih?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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