Maison >développement back-end >Tutoriel Python >Comment compter efficacement les occurrences de mots dans une liste Python ?

Comment compter efficacement les occurrences de mots dans une liste Python ?

DDD
DDDoriginal
2024-10-30 17:02:26892parcourir

How to Efficiently Count Word Occurrences in a Python List?

Compte de fréquence des éléments en Python

Comment compter efficacement les occurrences de chaque mot unique dans une liste donnée ? Considérez le code suivant :

<code class="python">words = "apple banana apple strawberry banana lemon"
uniques = set(words.split())
freqs = [(item, words.split().count(item)) for item in uniques]
print(freqs)</code>

Bien que cette méthode fonctionne, elle nécessite deux itérations dans la liste, une fois pour créer l'ensemble de mots unique et une autre fois pour compter les apparitions. Pouvons-nous optimiser cela ?

Solution : Utiliser la classe Counter

Le module collections Python fournit une classe Counter spécialement conçue pour cette tâche. Voici comment vous pouvez l'utiliser :

<code class="python">from collections import Counter
words = "apple banana apple strawberry banana lemon"
Counter(words.split())
# Output: Counter({'apple': 2, 'banana': 2, 'strawberry': 1, 'lemon': 1})</code>

La classe Counter compte les occurrences de chaque élément dans l'itérable fourni, ce qui donne lieu à un dictionnaire où les clés sont des éléments uniques et les valeurs sont leurs comptes. Cette approche est plus efficace car elle ne nécessite qu'une seule itération dans la liste d'entrée.

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