Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Python

Python Counter dans collections : comptage efficace, mise à jour et opérations arithmétiques

Python Counter dans collections : comptage efficace, mise à jour et opérations arithmétiques

Qu'est-ce que Python Counter ?

Le Counter de Python est un conteneur spécialisé qui compte les occurrences de chaque élément dans un itérable. Il hérite de dict et stocke les éléments comme clés avec leurs comptes comme valeurs, en faisant un outil idéal pour le comptage style table de hachage.

Pourquoi utiliser Python Counter ?

Démarrer avec Counter

Importez la classe depuis collections :

from collections import Counter

Maintenant, vous pouvez passer n'importe quel itérable à Counter et recevoir un mapping de comptes.

Exemple – Compter une liste

liste1 = ['x','y','z','x','x','x','y','z']
print(Counter(liste1))

Sortie :

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

Exemple – Compter une chaîne

ma_chaine = "Bienvenue sur les tutoriels Guru99 !"
print(Counter(ma_chaine))

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})

Exemple – Compter un dictionnaire

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

Sortie :

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

Exemple – Compter un tuple

tuple1 = ('x','y','z','x','x','x','y','z')
print(Counter(tuple1))

Sortie :

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

Initialisation, mise à jour et accès aux compteurs

Initialisation

print(Counter("Bienvenue sur les tutoriels Guru99 !"))  # chaîne
print(Counter(['x','y','z','x','x','x','y','z']))      # liste
print(Counter({'x': 4, 'y': 2, 'z': 2}))                # dict
print(Counter(('x','y','z','x','x','x','y','z')))      # tuple
# Compteur vide
_compteur = Counter()

Mise à jour

_compteur.update('Bienvenue sur les tutoriels Guru99 !')
print(_compteur)

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})

Accéder aux comptes

print('%s : %d' % ('u', _compteur['u']))
for char in 'Guru':
    print('%s : %d' % (char, _compteur[char]))

Sortie :

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

Supprimer un élément

del _compteur['x']
print(_compteur)

Sortie :

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

Opérations arithmétiques

Counter supporte l'arithmétique de type ensemble. Les comptes positifs sont préservés ; les valeurs négatives sont ignorées dans le résultat.

compteur1 = Counter({'x': 4, 'y': 2, 'z': -2})
compteur2 = Counter({'x1': -12, 'y': 5, 'z': 4})

# Addition
print(compteur1 + compteur2)
# Soustraction
print(compteur1 - compteur2)
# Intersection
print(compteur1 & compteur2)
# Union
print(compteur1 | compteur2)

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 clés

Utiliser elements()

compteur = Counter({'x': 5, 'y': 2, 'z': -2, 'x1': 0})
for e in compteur.elements():
    print(e)

Sortie :

x x x x x y y

Utiliser most_common()

compteur = Counter({'x': 5, 'y': 12, 'z': -2, 'x1': 0})
print(compteur.most_common(2))
print(compteur.most_common())

Sortie :

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

Utiliser subtract()

c1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1': 0})
c2 = Counter({'x': 2, 'y': 5})
c1.subtract(c2)
print(c1)

Sortie :

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

Utiliser update()

c1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1': 0})
c2 = Counter({'x': 2, 'y': 5})
c1.update(c2)
print(c1)

Sortie :

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

Réassigner des comptes

compteur = Counter({'x': 5, 'y': 12, 'z': -2, 'x1': 0})
compteur['y'] = 20
print(compteur)

Sortie :

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

Obtenir et définir les comptes d'éléments

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

Sortie :

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

Résumé

Python

  1. Maîtriser la méthode strip() de Python : Guide complet et exemples pratiques
  2. Maîtriser str.count() de Python : Compter caractères et sous-chaînes avec exemples
  3. Maîtriser les chaînes format() en Python avec exemples clairs
  4. Python len() : Guide pratique pour mesurer la longueur des objets
  5. Maîtriser la méthode String.find() de Python : Syntaxe, Exemples et Alternatives
  6. Maîtriser les fonctions lambda Python : exemples pratiques et bonnes pratiques
  7. Fonction Python round() expliquée avec exemples pratiques
  8. Maîtriser la fonction Python map() : syntaxe, exemples et bonnes pratiques
  9. Python timeit() : mesurer le temps d'exécution avec exemples pratiques