-1
votes

Comment compter la présence des combinaisons de lettres?

Je veux compter à quelle fréquence une séquence plusieurs caractères se produisent dans une chaîne. Par exemple, je veux voir combien de fois ad apparaît dans Badhadmad . J'ai pensé à utiliser un pour boucle mais je ne sais pas comment itérir plus d'un caractère. Comment puis-je accomplir THS?


4 commentaires

Comment de Simple "Badhadmad" .Count ('Ad') :)?


Dupliqué possible de Nombre d'occurrences d'une donnée donnée Substrage dans une chaîne


@Chris mais "Abeba" .Count ('aba') == 1 : D?


@TrebledJ True! str.count ne fonctionnera pas dans de tels cas. Dans ce cas, l'itération est en effet aller simple: somme (1 pour i dans la plage (len ("ababa")) si "ABA" == S [I: I + Len ("ABA")]) .


3 Réponses :


2
votes

Utilisez ceci pour compter le nombre d'occurrences d'une sous-chaîne en python.

import re
print(len(re.findall('(?=aba)', 'ababa')))


5 commentaires

Aussi, pourquoi la double vérification du premier personnage?


J'aimerais savoir s'il s'agit d'une redondance de calcul majeure?


Probablement un petit, mais en python lisibilité compte :) Comptez également sur Python pour effectuer le contrôle de manière efficace. Je suis sûr que, en faisant s [i: i + n] == motif Si le premier caractère ne correspond pas, aucun calcul supplémentaire ne sera effectué


C'est vrai que, mais je pense que la lisibilité est une chose subjective. Certains trouvent cela redondant ce que l'autre peut trouver lisible et inversement.


Eh bien avec ça je ne peux pas discuter évidemment :)



0
votes

générer niveau de caractère N grammes pour votre chaîne str, xxx

puis utiliser compter si nécessaire. Vous pouvez faire une boucle sur la plage de valeurs de n que vous souhaitez considérer.


0 commentaires

0
votes

Utilisez simplement Nombre CODE> STROND> Méthode sur une chaîne dans Python

x = "badhadmad"
x.count("ad")
# 3


0 commentaires