Python Compteur dans les collections avec exemple

⚡ Résumé intelligent

Python Counter est une sous-classe de dictionnaire du module collections qui comptabilise le nombre d'occurrences de chaque élément dans un itérable. Elle accepte les chaînes de caractères, les listes, les tuples et les dictionnaires, et prend en charge les opérations arithmétiques, la recherche de l'élément le plus fréquent et la mise à jour pour des calculs rapides.

  • (I.e. Compte: Le compteur comptabilise les occurrences de chaque élément et les renvoie sous forme de paires clé-nombre d'occurrences.
  • (I.e. Tout itérable : Il accepte les chaînes de caractères, les listes, les tuples et les dictionnaires comme entrée.
  • Arithmétique: Les compteurs prennent en charge l'addition, la soustractiontracopérations de tion, d'intersection et de syndication.
  • ????? le plus courant() : Cette méthode renvoie les éléments les plus fréquents, classés par ordre de fréquence.
  • (I.e. Mettre à jour: update() et soustract() ajuste les comptes à partir d'un autre compteur ou itérable.
  • 🤖 Aide de l'IA : Les assistants IA génèrent du code Counter et le suggèrent pour les tâches de fréquence et de comptage de mots.

Python Compteur dans les collections

Qu'est-ce que le Python Contrer?

Python Counter est un conteneur qui contiendra le nombre de chacun des éléments présents dans le conteneur. Le compteur est une sous-classe disponible dans la classe dictionnaire.

Le compteur est une sous-classe disponible dans la classe dictionnaire. En utilisant le Python Outil Compteur, vous pouvez compter les paires clé-valeur dans un objet, également appelé objet de table de hachage.

Pourquoi utiliser Python Contrer?

Voici les principales raisons d'utiliser Python 3 Compteur :

  • 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 nombre en tant que valeurs.
  • Il vous permet de compter les éléments dans une liste itérable.
  • Les opérations arithmétiques comme l'addition, la soustractiontracLes opérations de tion, d'intersection et d'union peuvent être facilement réalisées sur un compteur.
  • Un Compteur peut également compter les éléments d'un autre compteur

Introduction à la 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 la liste suivante :

list1 = ['x','y','z','x','x','x','y', 'z']

La liste contient des éléments x , y et z. Lorsque vous utilisez Counter sur cette liste, elle comptera combien de fois x , y et z sont présents. La sortie si le compteur est utilisé sur list1 devrait ressembler à :

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 Counter
list1 = ['x','y','z','x','x','x','y', 'z']
print(Counter(list1))

Sortie :

Counter({'x': 4, 'y': 2, 'z': 2})

Compteur avec ficelle

In Python, tout est un objet et la chaîne est aussi un objet. Python string peut être créé simplement en plaçant des caractères entre guillemets. 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 transmise à Counter. Il renvoie le format du dictionnaire, avec une paire clé/valeur où la clé est l'élément et la valeur est 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 Counter
my_str = "Welcome to Guru99 Tutorials!"
print(Counter(my_str))

Sortie :

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é le compteur à la liste, il vous donnera le nombre de chaque élément de la liste.

from collections import Counter
list1 = ['x','y','z','x','x','x','y','z']
print(Counter(list1))

Sortie :

Counter({'x': 4, 'y': 2, 'z': 2})

Compteur avec dictionnaire

Un dictionnaire contient 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 nombre d'éléments du dictionnaire donné.

Par exemple : {'x' : 4, 'y' : 2, 'z' : 2, 'z' : 2}. La fonction Counter tentera de trouver le nombre de chacune des clés du dictionnaire donné.

from collections import Counter
dict1 =  {'x': 4, 'y': 2, 'z': 2, 'z': 2}
print(Counter(dict1))

Sortie :

Counter({'x': 4, 'y': 2, 'z': 2})

Compteur avec Tuple

Tuple est une collection d’objets séparés par des virgules entre parenthèses. Counter vous donnera le nombre de chacun des éléments du tuple donné.

Une fois le tuple 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 Counter
tuple1 = ('x','y','z','x','x','x','y','z')
print(Counter(tuple1))

Sortie :

Counter({'x': 4, 'y': 2, 'z': 2})

Accès, initialisation et mise à jour des compteurs

Initialisation du compteur

Un compteur peut être initialisé en transmettant une valeur de chaîne, une liste, un dictionnaire ou un tuple comme indiqué ci-dessous :

from collections import Counter
print(Counter("Welcome to Guru99 Tutorials!"))   #using string
print(Counter(['x','y','z','x','x','x','y', 'z'])) #using list
print(Counter({'x': 4, 'y': 2, 'z': 2})) #using dictionary
print(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éder 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]))

Sortie :

u : 3

G : 1
u : 3
r : 2
u : 3

Supprimer un élément du compteur

Pour supprimer un élément de Counter, vous pouvez utiliser del , comme le montre l'exemple ci-dessous :

Exemple :

from collections import Counter
dict1 =  {'x': 4, 'y': 2, 'z': 2}
del dict1["x"]
print(Counter(dict1))

Sortie :

Counter({'y': 2, 'z': 2})

Opération arithmétique sur Python Counter

Les opérations arithmétiques telles que l'addition, la soustractiontracLes opérations de tion, d'intersection et d'union peuvent être effectuées sur un compteur comme indiqué dans l'exemple ci-dessous :

Exemple :

from collections import Counter
counter1 =  Counter({'x': 4, 'y': 2, 'z': -2})

counter2 = Counter({'x1': -12, 'y': 5, 'z':4 })

#Addition
counter3 = counter1 + counter2 # only the values that are positive will be returned.

print(counter3)

#Subtraction
counter4 = 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 output

print(counter4)

#Intersection
counter5 = counter1 & counter2 # it will give all common positive minimum values from counter1 and counter2

print(counter5)

#Union
counter6 = counter1 | counter2 # it will give positive max values from counter1 and counter2

print(counter6)

Sortie :

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 Python Counter

Il existe quelques méthodes importantes disponibles avec Counter, en voici la liste :

  • éléments() : Cette méthode vous renverra tous les éléments avec un nombre >0. Les éléments avec un compte de 0 ou -1 ne seront pas renvoyés.
  • most_common(valeur) : Cette méthode vous renverra les éléments les plus courants de la liste Counter.
  • dessoustract(): Cette méthode permet de déduire les éléments d'un autre Compteur.
  • mettre à jour(): Cette méthode permet de mettre à jour les éléments d'un autre Compteur.

Exemple : éléments()

from collections import Counter
counter1 =  Counter({'x': 5, 'y': 2, 'z': -2, 'x1':0})

_elements = counter1.elements() # will give you all elements with positive value and count>0
for a in _elements:
    print(a)

Sortie :

x
x
x
x
x
y
y

Exemple : most_common(valeur)

from collections import Counter
counter1 =  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)

Sortie :

 [('y', 12), ('x', 5)]
[('y', 12), ('x', 5), ('x1', 0), ('z', -2)]

Exemple : soustract()

from collections import Counter
counter1 =  Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})
counter2 = Counter({'x': 2, 'y':5})

counter1.subtract(counter2)
print(counter1)

Sortie :

Counter({'y': 7, 'x': 3, 'x1': 0, 'z': -2})

Exemple : mise à jour()

from collections import Counter
counter1 =  Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})
counter2 = Counter({'x': 2, 'y':5})
counter1.update(counter2)
print(counter1)

Sortie :

Counter({'y': 17, 'x': 7, 'x1': 0, 'z': -2})

Réaffectation des comptes dans Python

Vous pouvez réattribuer les comptes 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 d'éléments comme indiqué ci-dessous :

from collections import Counter
counter1 =  Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})

counter1['y'] = 20

print(counter1)

Sortie : Après l'exécution, vous verrez que le nombre y est passé de 12 à 20.

Counter({'y': 20, 'x': 5, 'x1': 0, 'z': -2})

Obtenez et définissez 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 Counter
counter1 =  Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})
print(counter1['y']) # this will give you the count of element 'y'

Sortie :

12

Pour définir le nombre d'éléments, vous pouvez procéder comme suit :

from collections import Counter
counter1 =  Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})

print(counter1['y'])

counter1['y'] = 20
counter1['y1'] = 10

print(counter1)

Sortie :

12
Counter({'y': 20, 'y1': 10, 'x': 5, 'x1': 0, 'z': -2})

FAQ

Counter est une sous-classe de dict qui compte automatiquement les éléments hachables et renvoie 0 pour les clés manquantes au lieu de lever une exception KeyError. Un dictionnaire simple nécessite un comptage manuel et lève une exception KeyError pour les clés absentes.

La fonction `most_common(n)` renvoie les n éléments les plus fréquents sous forme de tuples (élément, nombre d'occurrences), classés du plus fréquent au moins fréquent. Appelée sans argument, elle renvoie tous les éléments triés par nombre d'occurrences.

dessoustracLa fonction t() conserve les valeurs nulles et négatives après soustraction et modifie le compteur. L'opérateur moins renvoie un nouveau compteur et ignore tout élément dont le résultat est nul ou négatif.

Oui. Commencez par diviser le texte, par exemple avec `Counter(sentence.split())`, pour compter les mots entiers. Passer une chaîne de caractères brute compte les caractères individuellement, espaces compris, et non les mots.

Utilisez sum(counter.values()) pour additionner chaque valeur, ou Counter.total() dans Python 3.10 et versions ultérieures. Ceci indique le nombre total d'éléments comptabilisés par le compteur.

Le compteur remplace __missing__, de sorte que tout élément absent renvoie un compte de 0. Cela vous permet d'incrémenter de nouvelles clés et d'interroger des éléments en toute sécurité sans vérifier au préalable leur existence.

Les assistants IA génèrent du code Counter pour l'analyse de fréquence, recommandent l'utilisation de Counter plutôt que de boucles manuelles et expliquent des méthodes comme most_common et elements. Ils convertissent également la logique de comptage en un code plus propre et plus rapide basé sur les collections.

Oui. GitHub Copilot complète automatiquement les modèles Counter, defaultdict et OrderedDict à partir d'un commentaire décrivant votre objectif. Les outils d'IA d'Agentic automatisent les boucles de comptage manuelles en appels à Counter et ajoutent des tests à l'ensemble du fichier.

Résumez cet article avec :