Maison > développement back-end > Tutoriel Python > Comment puis-je compter efficacement les occurrences de sous-chaînes en Python (y compris les cas qui se chevauchent) ?

Comment puis-je compter efficacement les occurrences de sous-chaînes en Python (y compris les cas qui se chevauchent) ?

Barbara Streisand
Libérer: 2024-11-28 21:47:10
original
968 Les gens l'ont consulté

How Can I Efficiently Count Substring Occurrences in Python (Including Overlapping Cases)?

Comptage des occurrences d'une sous-chaîne dans une chaîne en Python

Une tâche de programmation fréquente consiste à déterminer le nombre de fois qu'une sous-chaîne spécifique apparaît dans une chaîne plus grande. Python fournit plusieurs méthodes pour accomplir efficacement cette tâche.

Une approche simple consiste à utiliser la méthode string.count(). Cette méthode prend la sous-chaîne comme argument et renvoie le nombre d'occurrences dans la chaîne. Par exemple :

>>> 'foo bar foo'.count('foo')
2
Copier après la connexion

Cette méthode compte également deux occurrences consécutives qui se chevauchent de la sous-chaîne. Si cela n'est pas souhaitable, vous pouvez envisager d'autres options.

Si vous devez tenir compte des occurrences qui se chevauchent, une implémentation personnalisée utilisant une approche de fenêtre glissante peut être utilisée. Voici un exemple :

def count_overlapping_occurrences(string, substring):
    count = 0
    window_start = 0
    window_end = len(substring)
    while window_end <= len(string):
        substring_occurrence = string[window_start:window_end]
        if substring_occurrence == substring:
            count += 1
        window_start += 1
        window_end += 1
    return count

>>> count_overlapping_occurrences('abcdabcva', 'ab')
4
Copier après la connexion

En utilisant cette fonction, vous pouvez déterminer avec précision le nombre d'occurrences d'une sous-chaîne dans une chaîne, qu'elles se chevauchent ou non.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal