Aller au contenu

Dictionnaire des nombres d'occurrences dans une phrase⚓︎

Occurrence d'un caractère dans une phrase

D'après Le Larousse : « En logique, place occupée par un symbole dans une formule. »

  • Le nombre d'occurrences du caractère "o" dans "bonjour" est 2 ;
  • le nombre d'occurrences du caractère "b" dans "bonjour" est 1 ;
  • le nombre d'occurrences du caractère "B" dans "bonjour" est 0 ;
  • le nombre d'occurrences du caractère " " dans "Bonjour à tous !" est 3.

On souhaite stocker les nombres d'occurrences dans un dictionnaire dont les clés sont les caractères de la phrase et les valeurs le nombre d'occurrences du caractère.

Écrire une fonction occurrence_caracteres prenant comme paramètre une chaine de caractères phrase. Cette fonction doit renvoyer un dictionnaire des nombres d'occurrences des caractères présents dans phrase.

Exemples

🐍 Console Python
>>> occurrence_caracteres("Bonjour à tous !") == {'B': 1, 'o': 3, 'n': 1, 'j': 1, 'u': 2, 'r': 1, ' ': 3, 'à': 1, 't': 1, 's': 1, '!': 1}
True
🐍 Console Python
>>> occurrence_caracteres("ababbab") == {"a": 3, "b": 4}
True

On rappelle que l'ordre des clés n'a pas d'importance pour comparer deux dictionnaires.

###
# testsbksl-nlbksl-nlassert occurrencepy-undcaracteres("Bonjour à tous !") == {bksl-nl "B": 1,bksl-nl "o": 3,bksl-nl "n": 1,bksl-nl "j": 1,bksl-nl "u": 2,bksl-nl "r": 1,bksl-nl " ": 3,bksl-nl "à": 1,bksl-nl "t": 1,bksl-nl "s": 1,bksl-nl "!": 1,bksl-nl}bksl-nlbksl-nlassert occurrencepy-undcaracteres("ababbab") == {"a": 3, "b": 4}bksl-nlbksl-nlbksl-nl# autres testsbksl-nlbksl-nlassert occurrencepy-undcaracteres("") == dict()bksl-nlassert occurrencepy-undcaracteres("d") == {"d": 1}bksl-nlassert occurrencepy-undcaracteres("d" py-str 100) == {"d": 100}bksl-nlassert occurrencepy-undcaracteres("d" py-str 100 + "r" py-str 50) == {"d": 100, "r": 50}bksl-nlbksl-nl 5/5

def occurrencepy-undcaracteres(phrase):bksl-nl ...bksl-nlbksl-nlbksl-nl# testsbksl-nlbksl-nlassert occurrencepy-undcaracteres("Bonjour à tous !") == {bksl-nl "B": 1,bksl-nl "o": 3,bksl-nl "n": 1,bksl-nl "j": 1,bksl-nl "u": 2,bksl-nl "r": 1,bksl-nl " ": 3,bksl-nl "à": 1,bksl-nl "t": 1,bksl-nl "s": 1,bksl-nl "!": 1,bksl-nl}bksl-nlbksl-nlassert occurrencepy-undcaracteres("ababbab") == {"a": 3, "b": 4}bksl-nlbksl-nldef occurrencepy-undcaracteres(phrase):bksl-nl occurrences = dict()bksl-nl for caractere in phrase:bksl-nl if caractere in occurrences:bksl-nl occurrences[caractere] += 1bksl-nl else:bksl-nl occurrences[caractere] = 1bksl-nl return occurrencesbksl-nlbksl-nl

A

Autre méthode possible :

On peut créer un dictionnaire d'occurences dont les clés sont tous les caractères de phrase, et les valeurs associées : 0. Cela se fait facilement en compréhension.
Il suffit ensuite de parcourir la chaine de caractères phrase, et d'actualiser le dictionnaire.

🐍 Script Python
def occurrence_caracteres(phrase):
    occurrences = {lettre : 0 for lettre in phrase}
    for lettre in phrase:
        occurrences[lettre] = occurrences[lettre] + 1
    return occurrences

Z