Python Counter di collections – Perhitungan, Pembaruan, dan Operasi Aritmetika
Apa Itu Python Counter?
Counter Python adalah wadah khusus yang menghitung kemunculan setiap elemen dalam iterable. Ia mewarisi dari dict dan menyimpan elemen sebagai kunci dengan jumlahnya sebagai nilai, menjadikannya alat ideal untuk perhitungan gaya hash-table.
Menggunakan Python Counter?
- Ia menyimpan data dalam struktur hash-table yang tidak terurut, dengan elemen sebagai kunci dan jumlahnya sebagai nilai.
- Menghitung item dalam iterable apa pun—string, list, tuple, atau dictionary—adalah mudah.
- Operasi aritmetika bawaan (penjumlahan, pengurangan, irisan, gabungan) memungkinkan manipulasi serupa himpunan yang kuat.
- Ia dapat mengagregat jumlah dari instance
Counter lainnya secara lancar.
Memulai dengan Counter
Impor kelas dari collections:
from collections import Counter
Sekarang Anda dapat melewatkan iterable apa pun ke Counter dan menerima pemetaan jumlah.
Contoh – Menghitung List
list1 = ['x','y','z','x','x','x','y','z'] print(Counter(list1))
Output:
Counter({'x': 4, 'y': 2, 'z': 2}) Contoh – Menghitung String
my_str = "Selamat datang di Guru99 Tutorials!" print(Counter(my_str))
Output:
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}) Contoh – Menghitung Dictionary
dict1 = {'x': 4, 'y': 2, 'z': 2} print(Counter(dict1)) Output:
Counter({'x': 4, 'y': 2, 'z': 2}) Contoh – Menghitung Tuple
tuple1 = ('x','y','z','x','x','x','y','z') print(Counter(tuple1)) Output:
Counter({'x': 4, 'y': 2, 'z': 2}) Menginisialisasi, Memperbarui, dan Mengakses Counter
Menginisialisasi
print(Counter("Selamat datang di Guru99 Tutorials!")) # string print(Counter(['x','y','z','x','x','x','y','z'])) # list print(Counter({'x': 4, 'y': 2, 'z': 2})) # dict print(Counter(('x','y','z','x','x','x','y','z'))) # tuple # Counter kosong _count = Counter() Memperbarui
_count.update('Selamat datang di Guru99 Tutorials!') print(_count) Output:
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}) Mengakses Jumlah
print('%s : %d' % ('u', _count['u'])) for char in 'Guru': print('%s : %d' % (char, _count[char])) Output:
u : 3 G : 1 u : 3 r : 2 u : 3
Menghapus Elemen
del _count['x'] print(_count)
Output:
Counter({'y': 2, 'z': 2}) Operasi Aritmetika
Counter mendukung aritmetika serupa himpunan. Jumlah positif dipertahankan; nilai negatif diabaikan dalam hasil.
counter1 = Counter({'x': 4, 'y': 2, 'z': -2}) counter2 = Counter({'x1': -12, 'y': 5, 'z': 4}) # Penjumlahan print(counter1 + counter2) # Pengurangan print(counter1 - counter2) # Irisan print(counter1 & counter2) # Gabungan print(counter1 | counter2) Output:
Counter({'y': 7, 'x': 4, 'z': 2}) Counter({'x1': 12, 'x': 4}) Counter({'y': 2}) Counter({'y': 5, 'x': 4, 'z': 4}) Metode Utama
- elements() – Mengembalikan iterator atas elemen dengan jumlah positif.
- most_common([n]) – Mengembalikan n elemen paling umum sebagai daftar tuple (elem, count).
- subtract(other) – Mengurangi jumlah dari Counter lain.
- update(other) – Menambahkan jumlah dari Counter lain.
Menggunakan elements()
counter = Counter({'x': 5, 'y': 2, 'z': -2, 'x1': 0}) for e in counter.elements(): print(e) Output:
x x x x x y y
Menggunakan most_common()
counter = Counter({'x': 5, 'y': 12, 'z': -2, 'x1': 0}) print(counter.most_common(2)) print(counter.most_common()) Output:
[('y', 12), ('x', 5)] [('y', 12), ('x', 5), ('x1', 0), ('z', -2)] Menggunakan subtract()
c1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1': 0}) c2 = Counter({'x': 2, 'y': 5}) c1.subtract(c2) print(c1) Output:
Counter({'y': 7, 'x': 3, 'x1': 0, 'z': -2}) Menggunakan update()
c1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1': 0}) c2 = Counter({'x': 2, 'y': 5}) c1.update(c2) print(c1) Output:
Counter({'y': 17, 'x': 7, 'x1': 0, 'z': -2}) Menetapkan Ulang Jumlah
counter = Counter({'x': 5, 'y': 12, 'z': -2, 'x1': 0}) counter['y'] = 20 print(counter) Output:
Counter({'y': 20, 'x': 5, 'x1': 0, 'z': -2}) Mengambil dan Mengatur Jumlah Elemen
counter = Counter({'x': 5, 'y': 12, 'z': -2, 'x1': 0}) print(counter['y']) counter['y'] = 20 counter['y1'] = 10 print(counter) Output:
12 Counter({'y': 20, 'y1': 10, 'x': 5, 'x1': 0, 'z': -2}) Ringkasan
- Counter adalah subclass dictionary yang menghitung elemen dalam iterable apa pun.
- Ia mendukung perhitungan efisien, operasi aritmetika, dan serangkaian metode utilitas.
- Kasus penggunaan umum termasuk analisis frekuensi, pembuatan histogram, dan agregasi data.
- Untuk dokumentasi lengkap, lihat Dokumentasi Python Counter.