Comment utiliser le module de compteur dans Python

Comment utiliser le module de compteur dans Python
Cet article expliquera comment utiliser le module «compteur» qui vient par défaut avec le langage de programmation Python. Tous les échantillons de code de cet article sont testés avec Python version 3.9.5 sur Ubuntu 21.04.

À propos du module de compteur

Le module de compteur, comme son nom l'indique, peut être utilisé pour compter les éléments d'un objet itérable ou hashable à Python. Le compteur stocke chaque élément d'un objet ITable (comme un objet de liste Python) comme une clé de dictionnaire Python. Puisque les dictionnaires Python ne permettent que des clés uniques, il n'y a pas de répétition. Les valeurs correspondantes pour ces clés de dictionnaires sont le nombre ou la quantité de fois qu'un élément apparaît dans un itérable.

Utilisation de base et syntaxe

Pour comprendre l'utilisation de base et la syntaxe de la classe de comptoir, jetez un œil à l'échantillon de code ci-dessous:

à partir des collections Import Counter
list1 = ["a", "a", "b", "b", "b", "c", "d", "d", "d", "d", "e", "e" ]]
Counts = Counter (List1)
Imprimer (compte)

La première instruction importe le module de compteur afin que la classe de comptoir puisse être utilisée dans le code. Ensuite, un nouvel objet de liste Python est défini avec certaines données. Une nouvelle instance d'objet de compteur est ensuite créée en passant «List1» comme argument. L'instruction finale imprime la sortie de l'objet «Counts».

Après avoir exécuté l'échantillon de code ci-dessus, vous devriez obtenir la sortie suivante:

Counter ('D': 4, 'B': 3, 'A': 2, 'E': 2, 'C': 1)

Notez que la sortie renvoie un objet de type compteur et non un dictionnaire Python. Bien qu'il se comporte comme un dictionnaire Python avec une différence mineure qui est expliquée ci-dessous.

Un compteur se comporte comme un objet de dictionnaire Python

Un dictionnaire dans Python est un objet qui stocke les éléments dans les paires «clé: valeur». Vous trouverez ci-dessous un exemple de dictionnaire Python:

dict1 = "a": 1, "b": 2

La partie avant le symbole «:» (colon) est appelée «clé» tandis que la partie après le symbole du côlon est appelée «valeur». Vous pouvez accéder à la valeur de n'importe quelle clé dans un dictionnaire Python en utilisant la syntaxe suivante:

dict1 = "a": 1, "b": 2
imprimer (dict1 ["a"])

Il vous suffit de fournir le nom de la clé dans «[]» (carré). Si la clé n'existe pas dans le dictionnaire, une «serror Key.

La sortie de l'exemple de compteur ci-dessus montre que lorsque vous créez une nouvelle instance de la classe de compteur, un nouvel objet de type Counter est renvoyé. Cet objet de type Counter n'est rien d'autre qu'un dictionnaire Python, sauf qu'il ne lance pas une «serror Keyerror» lorsqu'une valeur clé est manquante. Au lieu de cela, il lui attribue une valeur de «0» (zéro). Vous pouvez également accéder aux valeurs des éléments dans un contre-objet en fournissant des noms de clés en accolades carrés, tout comme un objet de dictionnaire. Jetez un œil à l'échantillon de code ci-dessous:

à partir des collections Import Counter
list1 = ["a", "a", "b", "b", "b", "c", "d", "d", "d", "d", "e", "e" ]]
Counts = Counter (List1)
imprimer (compte ["f"])
dict1 = "a": 1, "b": 2
print (dict1 ["c"])

Après avoir exécuté l'échantillon de code ci-dessus, vous devriez obtenir la sortie suivante:

0
Traceback (dernier appel dernier):
Fichier "principal.py ", ligne 11, dans
print (dict1 ["c"])
Keyerror: 'C'

Comme vous pouvez le voir dans la sortie que lorsque vous accédez à une clé qui n'existe pas dans un contre-objet, «0» (zéro) est renvoyé. Tandis que d'un autre côté, un objet de dictionnaire Python jette une «serror Keyerror» lorsqu'une clé manque.

Création manuelle d'un objet de compteur

Il peut y avoir un cas où vous voudrez peut-être définir manuellement un contre-objet au lieu d'analyser un itérable comme une liste de python. Pour créer un objet de compteur, vous pouvez utiliser la syntaxe suivante:

à partir des collections Import Counter
compteur1 = compteur (a = 4, b = 3)
Counter2 = Counter ("A": 4, "B": 3)
Imprimer (Counter1)
Imprimer (Counter2)

Vous pouvez utiliser la syntaxe de style argument indiqué dans la première instruction, ou utiliser la syntaxe de style dictionnaire Python illustré dans la deuxième instruction pour créer de nouvelles instances d'un compteur. Les deux méthodes ont le même effet et produisent la même sortie.

Après avoir exécuté l'échantillon de code ci-dessus, vous devriez obtenir la sortie suivante:

Counter ('A': 4, 'B': 3)
Counter ('A': 4, 'B': 3)

Obtenir les éléments les plus courants d'un compteur

Vous pouvez utiliser la méthode «Most_Common» pour obtenir des éléments et leurs dénombrements triés par ordre décroissant à partir d'un objet de type contre-contre. Jetez un œil à l'échantillon de code ci-dessous:

à partir des collections Import Counter
list1 = ["a", "a", "b", "b", "b", "c", "d", "d", "d", "d", "e", "e" ]]
Counts = Counter (List1)
imprimer (compte.Le plus commun())

La sortie renvoie une liste de tuples et non un compteur ou un objet de dictionnaire Python.

Vous ne pouvez également obtenir que quelques éléments les plus hauts en fournissant un numéro à la méthode «la plus_comon» comme argument.

à partir des collections Import Counter
list1 = ["a", "a", "b", "b", "b", "c", "d", "d", "d", "d", "e", "e" ]]
Counts = Counter (List1)
imprimer (compte.Most_Common (2))

Après avoir exécuté l'échantillon de code ci-dessus, vous devriez obtenir la sortie suivante:

[('d', 4), ('b', 3)]

Autres méthodes de comptoir utiles

Vous pouvez accéder à toutes les clés et valeurs d'un objet de compteur à l'aide des méthodes «clés» et «valeurs» respectivement.

à partir des collections Import Counter
list1 = ["a", "a", "b", "b", "b", "c", "d", "d", "d", "d", "e", "e" ]]
Counts = Counter (List1)
imprimer (compte.clés())
imprimer (compte.valeurs())

Après avoir exécuté l'échantillon de code ci-dessus, vous devriez obtenir la sortie suivante:

dict_keys (['a', 'b', 'c', 'd', 'e'])
dict_values ​​([2, 3, 1, 4, 2])

Ces méthodes produisent des objets itérables pour que vous puissiez les parcourir.

Vous pouvez obtenir à la fois des clés et des valeurs en utilisant la méthode «éléments».

à partir des collections Import Counter
list1 = ["a", "a", "b", "b", "b", "c", "d", "d", "d", "d", "e", "e" ]]
Counts = Counter (List1)
imprimer (compte.articles())

Après avoir exécuté l'échantillon de code ci-dessus, vous devriez obtenir la sortie suivante:

dict_items ([('a', 2), ('b', 3), ('c', 1), ('d', 4), ('e', 2)])

Vous pouvez également parcourir le résultat obtenu en utilisant la méthode «élément».

Vous pouvez convertir un objet de compteur en un dictionnaire Python en utilisant la fonction «dict».

à partir des collections Import Counter
list1 = ["a", "a", "b", "b", "b", "c", "d", "d", "d", "d", "e", "e" ]]
Counts = Counter (List1)
imprimer (dict (compte))

Après avoir exécuté l'échantillon de code ci-dessus, vous devriez obtenir la sortie suivante:

'A': 2, 'B': 3, 'C': 1, 'D': 4, 'E': 2

Boucle à travers les clés et les valeurs d'un compteur

Vous pouvez facilement parcourir les paires de valeurs clés d'un objet de compteur en utilisant la méthode «éléments» expliquée ci-dessus. Jetez un œil à l'échantillon de code ci-dessous:

à partir des collections Import Counter
list1 = ["a", "a", "b", "b", "b", "c", "d", "d", "d", "d", "e", "e" ]]
Counts = Counter (List1)
pour la clé, valeur dans les dénombrements.articles():
Imprimer (clé, valeur)

Dans le code, la variable de paire clé est accessible en utilisant respectivement les variables «clé» et «valeur» dans la boucle «pour».

Après avoir exécuté l'échantillon de code ci-dessus, vous devriez obtenir la sortie suivante:

A 2
b 3
c 1
d 4
e 2

Conclusion

Le module «Counter» intégré de Python fournit un moyen rapide et efficace d'obtenir le nombre d'éléments stockés dans un objet de type itérable. Vous pouvez utiliser la méthode «Most_Common» pour obtenir des paires les plus hautes avec des comptes les plus élevés en fournissant votre numéro souhaité comme argument.