Comment compter les occurrences dans une liste en Python
Découvrez les meilleures façons de compter les occurrences d'éléments dans une liste Python. Comparez la méthode count(), collections.Counter et le comptage du dictionnaire.
Aperçu
L'analyse d'ensembles de données nécessite souvent de compter les occurrences d'éléments individuels. Par exemple, compter le nombre de votes reçus par chaque candidat, compter la fréquence des mots dans des fichiers texte ou identifier les doublons dans les journaux de transactions. Python fournit plusieurs outils pour résoudre ce problème, selon que vous recherchez un décompte d'éléments uniques ou un décompte de fréquence complet.
Pour vérifier la fréquence d'un seul élément spécifique, le type de liste intégré fournit une méthode `.count(value)`. Il parcourt la liste et renvoie un entier comptant le nombre de fois que cette valeur exacte apparaît. Bien que simple et lisible, appeler `.count()` dans une boucle pour obtenir le nombre de tous les éléments est très inefficace, car il s'exécute en complexité O(N^2).
Pour compter les fréquences de tous les éléments simultanément en un seul passage, la bibliothèque standard propose la classe « Counter » au sein du module « collections ». Passer une liste à « Counter » renvoie un objet de type dictionnaire représentant les fréquences de tous les éléments en temps O(N). Il fournit également des méthodes d'assistance telles que `most_common()` pour récupérer rapidement les principaux éléments.
Sortie de code et d'exécution
Ce code montre le comptage d'éléments uniques dans des listes et l'obtention du nombre total d'éléments à l'aide de collections.Counter.
from collections import Counter
colors = ["red", "blue", "red", "green", "blue", "red"]
# Method 1: Count a single item using list.count()
red_count = colors.count("red")
print("Occurrences of 'red':", red_count)
# Method 2: Count all items using collections.Counter (Fast and powerful)
color_counts = Counter(colors)
print("\nCounter Object:", color_counts)
print("Count of 'blue':", color_counts["blue"])
# Getting the top most common items
print("Most common color:", color_counts.most_common(1))
# Method 3: Counting manually using a loop and a standard dictionary
manual_counts = {}
for item in colors:
manual_counts[item] = manual_counts.get(item, 0) + 1
print("\nManual dict count:", manual_counts)Occurrences of 'red': 3
Counter Object: Counter({'red': 3, 'blue': 2, 'green': 1})
Count of 'blue': 2
Most common color: [('red', 3)]
Manual dict count: {'red': 3, 'blue': 2, 'green': 1}Mise en œuvre étape par étape
- Appelez list_variable.count(value) si vous n’avez besoin que du nombre d’un seul élément spécifique dans la liste.
- Importez collections.Counter et transmettez la liste pour compter tous les éléments uniques en un seul passage optimisé.
- Utilisez la méthode .most_common(n) sur un objet Counter pour extraire les n éléments les plus fréquents.
Foire aux questions
Que se passe-t-il si je recherche une clé manquante dans un objet collections.Counter ?
Contrairement à un dictionnaire standard qui génère une KeyError, un objet Counter renvoie 0 pour les éléments manquants, ce qui représente zéro occurrence.
Quelle est la complexité temporelle de Counter par rapport au comptage en boucle avec list.count() ?
Le compteur compte tous les éléments en temps linéaire O(N) en parcourant la liste une fois. Itérer sur les éléments de la liste et appeler list.count() prend un temps quadratique O(N^2), ce qui est extrêmement lent pour les grandes listes.
Sujets connexes
Apprenez à trouver la longueur d'une liste en Python à l'aide de la fonction len(). Comprendre la complexité temporelle O(1) et les comptes de vérification.
Comment supprimer les doublons d'une liste en PythonDécouvrez comment supprimer les doublons d'une liste en Python tout en conservant ou en ignorant l'ordre. Comparez les conversions d'ensembles, les clés de dict et les méthodes de boucle.
Ressources Python recommandées
Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.
Listes Python
Apprenez tout sur les listes Python. Découvrez comment créer, découper, modifier et parcourir des tableaux en Python de manière native.
Aide-mémoire sur les méthodes de chaîne Python
Un guide de référence complet pour la manipulation des chaînes Python. Maîtrisez le formatage, la recherche, le fractionnement, le remplacement et la vérification des propriétés des chaînes.
Python vs JavaScript : quel langage de programmation est le meilleur ?
Une comparaison complète entre Python et JavaScript. Explorez les différences de syntaxe, les performances, les cas d'utilisation (backend et frontend) et des exemples de codage.