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

Comment puis-je compter les occurrences de sous-chaînes en Python, y compris les instances qui se chevauchent ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-09 00:32:08590parcourir

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

Détermination de la fréquence des sous-chaînes dans une chaîne

En Python, compter les occurrences d'une sous-chaîne particulière dans une chaîne est une tâche courante. Voici comment y parvenir :

Utilisation de string.count()

La méthode str.count(substring) fournit une approche simple pour compter les occurrences de sous-chaîne. Il renvoie le nombre d'instances de sous-chaîne qui ne se chevauchent pas dans la chaîne. Par exemple :

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

Cette méthode parcourt efficacement la chaîne et incrémente un compteur chaque fois qu'elle rencontre la sous-chaîne spécifiée. Cependant, il est crucial de noter qu'il ne prend en compte que les occurrences qui ne se chevauchent pas.

Atteindre le nombre de sous-chaînes qui se chevauchent

Si vous avez besoin du nombre de sous-chaînes qui se chevauchent, vous devrez explorer des approches alternatives. Une option consiste à exploiter la puissance des expressions régulières :

import re

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

Cette méthode utilise un modèle d'expression régulière pour faire correspondre toutes les occurrences de la sous-chaîne, y compris celles qui se chevauchent. Il capture les correspondances sous forme de liste et renvoie le décompte.

Conclusion

Qu'il s'agisse de compter les occurrences de sous-chaînes qui ne se chevauchent pas ou qui se chevauchent, la méthode str.count() et les expressions régulières fournissent des solutions efficaces pour cette tâche de programmation commune.

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!

Déclaration:
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