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 :