Python Counter Sınıfı Kullanımı
Python Counter
Sınıfı Kullanımı
Python’un collections
modülünde yer alan Counter sınıfı, sayım yapma işlemini kolaylaştıran bir veri yapısıdır. Özellikle bir iterable (örneğin listeler, stringler vb.) içerisindeki öğelerin frekansını hızlıca bulmak için kullanılır. Counter sınıfının çıktısı bir sözlüktür(dictionary). İçine string veya herhangi bir liste gönderdiğimizde liste içindeki her bir elemanın frekansını hesaplar ve sonuç olarak bir dictionary döndürür. Mülakatlar esnasında ilgili soruda bir dizi ve listenin elemanlarının frekansını bulmak için tekerleği yeniden icat etmeden Counter
sınıfını kullanıp kullanamayacağınızı başta sorabilir ve bu sınıfı kullanarak soruyla ilgili diğer kısımları implement ederken zaman kazanabilirsiniz. Bu sınıfın zaman ve bellek karmaşıklığı O(n)
’dir.
1. Counter Nedir?
Counter
, bir iterable içerisindeki öğelerin kaç kez tekrarlandığını saymak için kullanılan bir sınıftır. Bir sözlük gibi çalışır; anahtarlar iterable içerisindeki öğeler olurken, değerler ise bu öğelerin kaç kez tekrarlandığını gösterir.
Örnek Kullanım:
Çıktı:
Bu örnekte, Counter
sınıfı her harfi sayar ve frekansını verir.
2. Counter Oluşturma
Counter
sınıfı birkaç farklı yolla oluşturulabilir:
2.1. Liste, String veya Diğer Iterable Üzerinden
Çıktı:
2.2. Sözlükten
Bir sözlüğü Counter
sınıfına vererek de bir sayaç oluşturulabilir.
Çıktı:
2.3. Anahtar-Değer Çiftleri ile
Counter, anahtar-değer çiftleri ile doğrudan da oluşturulabilir:
Çıktı:
3. Counter Sınıfının Temel Metotları
3.1. elements()
Counter’daki her öğeyi, sayısı kadar tekrar eden bir iterator döndürür.
Çıktı:
3.2. most_common()
Bu metod, en yaygın öğeleri ve frekanslarını sıralı bir şekilde döndürür.
Çıktı:
3.3. subtract()
Bu metod, sayacın öğelerinden çıkartma yapar. Bir iterable veya başka bir Counter nesnesi kullanılabilir.
Çıktı:
4. Counter ile Aritmetik İşlemler
Counter sınıfı aritmetik işlemleri destekler. İki Counter nesnesi arasında toplama, çıkarma, kesişim (min), birleşim (max) gibi işlemler yapılabilir.
4.1. Toplama
İki Counter’ı toplayarak her öğenin frekanslarını birleştirebilirsiniz:
Çıktı:
4.2. Çıkarma
İki Counter’ı çıkararak öğelerin frekanslarını fark alabilirsiniz:
Çıktı:
4.3. Kesişim (min)
İki Counter’ın kesişimi, her öğenin minimum frekansını alır:
Çıktı:
4.4. Birleşim (max)
İki Counter’ın birleşimi, her öğenin maksimum frekansını alır:
Çıktı:
5. Gerçek Dünya Kullanım Alanları
Counter
sınıfı, birçok gerçek dünya probleminde kullanılabilir. Örneğin, bir metindeki harflerin veya kelimelerin frekansını bulma, bir anketten en popüler yanıtları toplama gibi işlemler için oldukça faydalıdır.
5.1. Bir Metindeki Kelime Frekansını Bulma
Çıktı:
5.2. Oylama Sonuçlarını Hesaplama
Çıktı:
Sonuç
Python’un Counter
sınıfı, öğelerin frekanslarını hızlı ve etkili bir şekilde saymak için kullanışlı bir araçtır. Aritmetik işlemler, kesişim ve birleşim gibi özellikler sayesinde veri analizi ve istatistiksel işlemler için oldukça uygundur. Günlük programlama problemlerinde sıkça kullanılabilecek bu veri yapısı, özellikle büyük veri setlerinde oldukça faydalıdır.