Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Python

Python Counter in collections: Effizientes Zählen, Aktualisieren und arithmetische Operationen

Python Counter in collections: Effizientes Zählen, Aktualisieren und arithmetische Operationen

Was ist Python Counter?

Pythons Counter ist ein spezialisierter Container, der die Vorkommen jedes Elements in einem Iterierbaren zählt. Er erbt von dict und speichert Elemente als Keys mit ihren Counts als Values, was ihn zu einem idealen Werkzeug für Hash-Tabellen-ähnliches Zählen macht.

Warum Python Counter verwenden?

Erste Schritte mit Counter

Importieren Sie die Klasse aus collections:

from collections import Counter

Jetzt können Sie jedes Iterierbare an Counter übergeben und eine Count-Mapping erhalten.

Beispiel – Liste zählen

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

Ausgabe:

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

Beispiel – String zählen

mein_str = "Willkommen bei Guru99 Tutorials!"
print(Counter(mein_str))

Ausgabe:

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

Beispiel – Dictionary zählen

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

Ausgabe:

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

Beispiel – Tupel zählen

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

Ausgabe:

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

Initialisieren, Aktualisieren und Zugreifen auf Counters

Initialisieren

print(Counter("Willkommen bei Guru99 Tutorials!"))  # string
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')))  # tupel
# Leerer Counter
_count = Counter()

Aktualisieren

_count.update('Willkommen bei Guru99 Tutorials!')
print(_count)

Ausgabe:

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

Counts zugreifen

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

Ausgabe:

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

Element löschen

del _count['x']
print(_count)

Ausgabe:

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

Arithmetische Operationen

Counter unterstützt mengenartige Arithmetik. Positive Counts werden beibehalten; negative Werte werden im Ergebnis verworfen.

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

# Addition
print(counter1 + counter2)
# Subtraktion
print(counter1 - counter2)
# Durchschnitt (Intersection)
print(counter1 & counter2)
# Vereinigung
print(counter1 | counter2)

Ausgabe:

Counter({'y': 7, 'x': 4, 'z': 2})
Counter({'x1': 12, 'x': 4})
Counter({'y': 2})
Counter({'y': 5, 'x': 4, 'z': 4})

Wichtige Methoden

elements() verwenden

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

Ausgabe:

x
x
x
x
x
y
y

most_common() verwenden

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

Ausgabe:

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

subtract() verwenden

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

Ausgabe:

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

update() verwenden

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

Ausgabe:

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

Counts neu zuweisen

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

Ausgabe:

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

Element-Counts abrufen und setzen

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

Ausgabe:

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

Zusammenfassung

Python

  1. Pythons strip()-Methode meistern: Umfassender Leitfaden & Praxisbeispiele
  2. Pythons str.count(): Zeichen & Teilstrings zählen mit Beispielen
  3. Python format()-Strings meistern mit klaren Beispielen
  4. Python len(): Praktischer Leitfaden zur Messung von Objektlängen
  5. Pythons String.find()-Methode meistern: Syntax, Beispiele & Alternativen
  6. Python Lambda-Funktionen meistern: Praxisbeispiele & Best Practices
  7. Python round()-Funktion erklärt mit praktischen Beispielen
  8. Pythons map()-Funktion meistern: Syntax, Beispiele und Best Practices
  9. Python timeit(): Ausführungszeit messen mit praktischen Beispielen
  10. Python list.count(): Experten-Guide mit praktischen Beispielen