Qu'est-ce que Python Counter?
Python Counter est un conteneur qui contiendra le décompte de chacun des éléments présents dans le conteneur. Le compteur est une sous-classe disponible dans la classe de dictionnaire.
Le compteur est une sous-classe disponible dans la classe de dictionnaire. À l'aide de l'outil Compteur Python, vous pouvez compter les paires clé-valeur dans un objet, également appelé objet de table de hachage.
Pourquoi utiliser Python Counter?
Voici les principales raisons d'utiliser Python 3 Counter:
- Le compteur contient les données dans une collection non ordonnée, tout comme les objets de table de hachage. Les éléments ici représentent les clés et le décompte en tant que valeurs.
- Il vous permet de compter les éléments dans une liste itérable.
- Les opérations arithmétiques telles que l'addition, la soustraction, l'intersection et l'union peuvent être facilement effectuées sur un compteur.
- Un compteur peut également compter les éléments d'un autre compteur
Dans ce didacticiel Python, vous apprendrez:
- Qu'est-ce que Python Counter?
- Pourquoi utiliser Python Counter?
- Introduction à Python Counter
- Compteur avec chaîne
- Compteur avec liste
- Compteur avec dictionnaire
- Comptoir avec Tuple
- Accès, initialisation et mise à jour des compteurs
- Suppression d'un élément du compteur
- Opération arithmétique sur le compteur Python
- Méthodes disponibles sur le compteur Python
- Réattribution des comptes en Python
- Obtenir et définir le nombre d'éléments à l'aide de Counter
Introduction à Python Counter
Python Counter prend en entrée une liste, un tuple, un dictionnaire, une chaîne, qui sont tous des objets itérables, et il vous donnera une sortie qui aura le nombre de chaque élément.
Syntaxe:
Counter(list)
Considérez que vous avez une liste suivante:
list1 = ['x','y','z','x','x','x','y', 'z']
La liste contient les éléments x, y et z. Lorsque vous utilisez Counter sur cette liste, il compte combien de fois x, y et z sont présents. La sortie si le compteur est utilisé sur list1 devrait être quelque chose comme:
Counter({'x': 4, 'y': 2, 'z': 2})
Nous avons donc le compte de x comme 4, y comme 2 et z comme 2.
Pour utiliser Counter, nous devons d'abord l'importer comme indiqué dans l'exemple ci-dessous:
from collections import Counter
Voici un exemple simple, qui montre le fonctionnement du module Counter.
from collections import Counterlist1 = ['x','y','z','x','x','x','y', 'z']print(Counter(list1))
Production:
Counter({'x': 4, 'y': 2, 'z': 2})
Compteur avec chaîne
En Python, tout est un objet et la chaîne est aussi un objet. La chaîne Python peut être créée simplement en insérant des caractères entre guillemets doubles. Python ne prend pas en charge un type de caractère. Celles-ci sont traitées comme des chaînes de longueur un, également considérées comme une sous-chaîne.
Dans l'exemple ci-dessous, une chaîne est passée à Counter. Il renvoie le format du dictionnaire, avec une paire clé / valeur où la clé est l'élément et la valeur le nombre. Il considère également l'espace comme un élément et donne le nombre d'espaces dans la chaîne.
Exemple:
from collections import Countermy_str = "Welcome to Guru99 Tutorials!"print(Counter(my_str))
Production:
Counter({'o': 3, ' ': 3, 'u': 3, 'e': 2, 'l': 2, 't': 2, 'r': 2, '9': 2, 'W': 1,'c': 1, 'm': 1, 'G': 1, 'T': 1, 'i': 1, 'a': 1, 's': 1, '!': 1})
Compteur avec liste
Une liste est un objet itérable dont les éléments sont entre crochets.
Les éléments de la liste lorsqu'ils sont donnés au compteur seront convertis en objets de table de hachage dans lesquels les éléments deviendront des clés et les valeurs seront le nombre d'éléments de la liste donnée.
Par exemple ['x', 'y', 'z', 'x', 'x', 'x', 'y', 'z']. Une fois que vous avez donné à la liste le compteur, il vous donnera le nombre de chaque élément de la liste.
from collections import Counterlist1 = ['x','y','z','x','x','x','y','z']print(Counter(list1))
Production:
Counter({'x': 4, 'y': 2, 'z': 2})
Compteur avec dictionnaire
Un dictionnaire a des éléments sous forme de paire clé / valeur, et ils sont écrits entre accolades.
Une fois le dictionnaire donné au compteur, il sera converti en objets de table de hachage dans lesquels les éléments deviendront des clés, et les valeurs seront le décompte des éléments du dictionnaire donné.
Par exemple: {'x': 4, 'y': 2, 'z': 2, 'z': 2}. La fonction Counter essaiera de trouver le nombre de chacune des clés dans le dictionnaire donné.
from collections import Counterdict1 = {'x': 4, 'y': 2, 'z': 2, 'z': 2}print(Counter(dict1))
Production:
Counter({'x': 4, 'y': 2, 'z': 2})
Comptoir avec Tuple
Tuple est une collection d'objets séparés par des virgules entre crochets. Counter vous donnera le décompte de chacun des éléments du tuple donné.
Une fois que le tuple est donné au compteur, il sera converti en un objet de table de hachage dans lequel les éléments deviendront des clés et les valeurs seront le nombre d'éléments du tuple donné.
from collections import Countertuple1 = ('x','y','z','x','x','x','y','z')print(Counter(tuple1))
Production:
Counter({'x': 4, 'y': 2, 'z': 2})
Accès, initialisation et mise à jour des compteurs
Initialisation du compteur
Un compteur peut être initialisé en passant une valeur de chaîne, une liste, un dictionnaire ou un tuple comme indiqué ci-dessous:
from collections import Counterprint(Counter("Welcome to Guru99 Tutorials!")) #using stringprint(Counter(['x','y','z','x','x','x','y', 'z'])) #using listprint(Counter({'x': 4, 'y': 2, 'z': 2})) #using dictionaryprint(Counter(('x','y','z','x','x','x','y', 'z'))) #using tuple
Vous pouvez également initialiser un compteur vide comme indiqué ci-dessous:
from collections import Counter_count = Counter()
Mise à jour du compteur
Vous pouvez ajouter des valeurs au compteur en utilisant la méthode update ().
_count.update('Welcome to Guru99 Tutorials!')
Le code final est:
from collections import Counter_count = Counter()_count.update('Welcome to Guru99 Tutorials!')print(_count)
La sortie est:
Counter({'o': 3, ' ': 3, 'u': 3, 'e': 2, 'l': 2, 't': 2, 'r': 2, '9': 2, 'W': 1,'c': 1, 'm': 1, 'G': 1, 'T': 1, 'i': 1, 'a': 1, 's': 1, '!': 1})
Accès au compteur
Pour obtenir les valeurs du compteur, vous pouvez procéder comme suit:
from collections import Counter_count = Counter()_count.update('Welcome to Guru99 Tutorials!')print('%s : %d' % ('u', _count['u']))print('\n')for char in 'Guru':print('%s : %d' % (char, _count[char]))
Production:
u : 3G : 1u : 3r : 2u : 3
Suppression d'un élément du compteur
Pour supprimer un élément de Counter, vous pouvez utiliser del, comme indiqué dans l'exemple ci-dessous:
Exemple:
from collections import Counterdict1 = {'x': 4, 'y': 2, 'z': 2}del dict1["x"]print(Counter(dict1))
Production:
Counter({'y': 2, 'z': 2})
Opération arithmétique sur le compteur Python
Les opérations arithmétiques telles que l'addition, la soustraction, l'intersection et l'union peuvent être effectuées sur un compteur comme indiqué dans l'exemple ci-dessous:
Exemple:
from collections import Countercounter1 = Counter({'x': 4, 'y': 2, 'z': -2})counter2 = Counter({'x1': -12, 'y': 5, 'z':4 })#Additioncounter3 = counter1 + counter2 # only the values that are positive will be returned.print(counter3)#Subtractioncounter4 = counter1 - counter2 # all -ve numbers are excluded.For example z will be z = -2-4=-6, since it is -ve value it is not shown in the outputprint(counter4)#Intersectioncounter5 = counter1 & counter2 # it will give all common positive minimum values from counter1 and counter2print(counter5)#Unioncounter6 = counter1 | counter2 # it will give positive max values from counter1 and counter2print(counter6)
Production:
Counter({'y': 7, 'x': 4, 'z': 2})Counter({'x1': 12, 'x': 4})Counter({'y': 2})Counter({'y': 5, 'x': 4, 'z': 4})
Méthodes disponibles sur le compteur Python
Il existe quelques méthodes importantes disponibles avec Counter, voici la liste des mêmes:
- elements () : Cette méthode vous retournera tous les éléments avec count> 0. Les éléments avec un compte 0 ou -1 ne seront pas renvoyés.
- most_common (value): Cette méthode vous retournera les éléments les plus courants de la liste Counter.
- soustract (): Cette méthode est utilisée pour déduire les éléments d'un autre compteur.
- update (): Cette méthode est utilisée pour mettre à jour les éléments d'un autre compteur.
Exemple: elements ()
from collections import Countercounter1 = Counter({'x': 5, 'y': 2, 'z': -2, 'x1':0})_elements = counter1.elements() # will give you all elements with positive value and count>0for a in _elements:print(a)
Production:
xxxxxyy
Exemple: most_common (value)
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})common_element = counter1.most_common(2) # The dictionary will be sorted as per the most common element first followed by next.print(common_element)common_element1 = counter1.most_common() # if the value is not given to most_common , it will sort the dictionary and give the most common elements from the start.The last element will be the least common element.print(common_element1)
Production:
[('y', 12), ('x', 5)][('y', 12), ('x', 5), ('x1', 0), ('z', -2)]
Exemple: soustraire ()
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})counter2 = Counter({'x': 2, 'y':5})counter1.subtract(counter2)print(counter1)
Production:
Counter({'y': 7, 'x': 3, 'x1': 0, 'z': -2})
Exemple: update ()
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})counter2 = Counter({'x': 2, 'y':5})counter1.update(counter2)print(counter1)
Production:
Counter({'y': 17, 'x': 7, 'x1': 0, 'z': -2})
Réattribution des comptes en Python
Vous pouvez réaffecter les comptages de compteur comme indiqué ci-dessous:
Considérez que vous avez un dictionnaire comme: {'x': 5, 'y': 12, 'z': -2, 'x1': 0}
Vous pouvez modifier le nombre de l'élément comme indiqué ci-dessous:
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})counter1['y'] = 20print(counter1)
Sortie: Après l'exécution, vous verrez que le compte y passe de 12 à 20
Counter({'y': 20, 'x': 5, 'x1': 0, 'z': -2})
Obtenir et définir le nombre d'éléments à l'aide de Counter
Pour obtenir le nombre d'un élément à l'aide de Counter, vous pouvez procéder comme suit:
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})print(counter1['y']) # this will give you the count of element 'y'
Production:
12
Pour définir le nombre d'éléments, vous pouvez procéder comme suit:
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})print(counter1['y'])counter1['y'] = 20counter1['y1'] = 10print(counter1)
Production:
12Counter({'y': 20, 'y1': 10, 'x': 5, 'x1': 0, 'z': -2})
Résumé:
- Counter est un conteneur qui contiendra le décompte de chacun des éléments présents dans le conteneur.
- Counter est une sous-classe disponible dans la classe de dictionnaire.
- À l'aide de l'outil Compteur Python, vous pouvez compter les paires clé-valeur dans un objet, également appelé objet de table de hachage.
- Le compteur contient les données dans une collection non ordonnée, tout comme les objets de table de hachage. Les éléments ici représentent les clés et le décompte en tant que valeurs.
- Il vous permet de compter les éléments dans une liste itérable.
- Les opérations arithmétiques telles que l'addition, la soustraction, l'intersection et l'union peuvent être facilement effectuées sur un compteur.
- Un compteur peut également compter les éléments d'un autre compteur.
- Les méthodes importantes disponibles sur un compteur sont elements (), most_common (value), subtract () et update ().
- Un compteur peut être utilisé sur une chaîne, une liste, un dictionnaire et un tuple.