Python Sayacı nedir?
Python Sayacı, kapta bulunan öğelerin her birinin sayısını tutacak bir kaptır. Sayaç, sözlük sınıfında bulunan bir alt sınıftır.
Sayaç, sözlük sınıfında bulunan bir alt sınıftır. Python Sayacı aracını kullanarak, karma tablo nesnesi olarak da adlandırılan bir nesnedeki anahtar-değer çiftlerini sayabilirsiniz.
Python Sayacı neden kullanılıyor?
Python 3 Sayacı kullanmanın başlıca nedenleri şunlardır:
- Sayaç, verileri, hashtable nesneler gibi sırasız bir koleksiyonda tutar. Buradaki öğeler anahtarları ve sayıları değer olarak temsil eder.
- Yinelenebilir bir listedeki öğeleri saymanıza olanak tanır.
- Toplama, çıkarma, kesişim ve birleştirme gibi aritmetik işlemler bir Sayaç üzerinde kolayca gerçekleştirilebilir.
- Bir Sayaç, başka bir sayaçtaki öğeleri de sayabilir
Bu Python eğitiminde şunları öğreneceksiniz:
- Python Sayacı nedir?
- Python Sayacı neden kullanılıyor?
- Python Sayacına Giriş
- Dize ile Sayaç
- Listeli Sayaç
- Sözlüklü Sayaç
- Tuple ile Sayaç
- Sayaçlara Erişme, Başlatma ve Güncelleme
- Sayaçtan Bir Eleman Silme
- Python Sayacında aritmetik işlem
- Python Sayacında Kullanılabilen Yöntemler
- Python'da Sayımları Yeniden Atama
- Counter kullanarak Element sayısını alın ve ayarlayın
Python Sayacına Giriş
Python Sayacı, tümü yinelenebilir nesneler olan bir liste, tuple, sözlük, dizgi girişi alır ve size her bir öğenin sayısını verecek çıktılar verir.
Sözdizimi:
Counter(list)
Aşağıdaki listeye sahip olduğunuzu düşünün:
list1 = ['x','y','z','x','x','x','y', 'z']
Listede x, y ve z öğeleri bulunur. Bu listede Sayaç kullandığınızda, x, y ve z'nin kaç kez bulunduğunu sayacaktır. List1'de sayaç kullanılırsa çıktının aşağıdaki gibi olması gerekir:
Counter({'x': 4, 'y': 2, 'z': 2})
Yani x'i 4, y'yi 2 ve z'yi 2 olarak sayarız.
Counter'ı kullanmak için, aşağıdaki örnekte gösterildiği gibi önce onu içe aktarmamız gerekir:
from collections import Counter
İşte Counter modülünün çalışmasını gösteren basit bir örnek.
from collections import Counterlist1 = ['x','y','z','x','x','x','y', 'z']print(Counter(list1))
Çıktı:
Counter({'x': 4, 'y': 2, 'z': 2})
Dize ile Sayaç
Python'da her şey bir nesnedir ve dizge de bir nesnedir. Python dizesi, çift tırnak içine karakterler eklenerek oluşturulabilir. Python bir karakter türünü desteklemez. Bunlar, bir alt dize olarak da kabul edilen bir uzunluktaki dizeler olarak kabul edilir.
Aşağıdaki örnekte, Counter'a bir dize geçirilmiştir. Anahtarın öğe ve değerin sayı olduğu anahtar / değer çifti ile sözlük biçimini döndürür. Ayrıca uzayı bir öğe olarak görür ve dizedeki boşlukların sayısını verir.
Misal:
from collections import Countermy_str = "Welcome to Guru99 Tutorials!"print(Counter(my_str))
Çıktı:
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})
Listeli Sayaç
Liste, öğeleri köşeli parantez içinde olan yinelenebilir bir nesnedir.
Listedeki öğeler, Sayaç'a verildiğinde, öğelerin anahtar haline geleceği ve değerlerin verilen listedeki öğelerin sayısı olacağı bir hashtable nesnelere dönüştürülecektir.
Örneğin ['x', 'y', 'z', 'x', 'x', 'x', 'y', 'z']. Listeye Sayacı verdiğinizde, size listedeki her bir öğenin sayısını verecektir.
from collections import Counterlist1 = ['x','y','z','x','x','x','y','z']print(Counter(list1))
Çıktı:
Counter({'x': 4, 'y': 2, 'z': 2})
Sözlüklü Sayaç
Bir sözlükte anahtar / değer çifti olarak öğeler bulunur ve bunlar küme parantezleri içinde yazılır.
Sözlük Sayaç'a verildikten sonra, öğelerin anahtar haline geleceği bir hashtable nesnelere dönüştürülecek ve değerler, verilen sözlükteki öğelerin sayısı olacaktır.
Örneğin: {'x': 4, 'y': 2, 'z': 2, 'z': 2}. Sayaç işlevi, verilen sözlükteki her bir tuşun sayısını bulmaya çalışır.
from collections import Counterdict1 = {'x': 4, 'y': 2, 'z': 2, 'z': 2}print(Counter(dict1))
Çıktı:
Counter({'x': 4, 'y': 2, 'z': 2})
Tuple ile Sayaç
Tuple, yuvarlak parantez içinde virgülle ayrılmış nesnelerin bir koleksiyonudur. Sayaç, size verilen dizideki öğelerin her birinin sayısını verecektir.
Tuple Sayaca verildikten sonra, bir hashtable nesnesine dönüştürülecektir, burada öğeler anahtarlar haline gelir ve değerler, verilen dizideki öğelerin sayısı olacaktır.
from collections import Countertuple1 = ('x','y','z','x','x','x','y','z')print(Counter(tuple1))
Çıktı:
Counter({'x': 4, 'y': 2, 'z': 2})
Sayaçlara Erişme, Başlatma ve Güncelleme
Sayaç Başlatılıyor
Bir Sayaç, aşağıda gösterildiği gibi dize değeri, liste, sözlük veya tuple iletilerek başlatılabilir:
from collections import Counterprint(Counter("Welcome to Guru99 Tutorials!")) #using stringprint(Counter(['x','y','z','x','x','x','y', 'z'])) #using listprint(Counter({'x': 4, 'y': 2, 'z': 2})) #using dictionaryprint(Counter(('x','y','z','x','x','x','y', 'z'))) #using tuple
Ayrıca aşağıda gösterildiği gibi boş bir Sayaç başlatabilirsiniz:
from collections import Counter_count = Counter()
Sayaç Güncelleniyor
Update () yöntemini kullanarak Sayaca değer ekleyebilirsiniz.
_count.update('Welcome to Guru99 Tutorials!')
Nihai kod:
from collections import Counter_count = Counter()_count.update('Welcome to Guru99 Tutorials!')print(_count)
Çıktı:
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})
Sayaca Erişim
Sayaçtan değerleri almak için aşağıdaki işlemleri yapabilirsiniz:
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]))
Çıktı:
u : 3G : 1u : 3r : 2u : 3
Sayaçtan Bir Eleman Silme
Counter'dan bir öğeyi silmek için, aşağıdaki örnekte gösterildiği gibi del'i kullanabilirsiniz:
Misal:
from collections import Counterdict1 = {'x': 4, 'y': 2, 'z': 2}del dict1["x"]print(Counter(dict1))
Çıktı:
Counter({'y': 2, 'z': 2})
Python Sayacında aritmetik işlem
Toplama, çıkarma, kesişim ve birleştirme gibi aritmetik işlemler, aşağıdaki örnekte gösterildiği gibi bir Sayaç üzerinde yapılabilir:
Misal:
from collections import Countercounter1 = Counter({'x': 4, 'y': 2, 'z': -2})counter2 = Counter({'x1': -12, 'y': 5, 'z':4 })#Additioncounter3 = counter1 + counter2 # only the values that are positive will be returned.print(counter3)#Subtractioncounter4 = 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 outputprint(counter4)#Intersectioncounter5 = counter1 & counter2 # it will give all common positive minimum values from counter1 and counter2print(counter5)#Unioncounter6 = counter1 | counter2 # it will give positive max values from counter1 and counter2print(counter6)
Çıktı:
Counter({'y': 7, 'x': 4, 'z': 2})Counter({'x1': 12, 'x': 4})Counter({'y': 2})Counter({'y': 5, 'x': 4, 'z': 4})
Python Sayacında Kullanılabilen Yöntemler
Counter ile kullanılabilen bazı önemli yöntemler vardır, işte bunların listesi:
- elements () : Bu yöntem size count> 0 olan tüm öğeleri döndürür. 0 veya -1 sayıya sahip öğeler iade edilmeyecektir.
- most_common (değer): Bu yöntem size Sayaç listesindeki en yaygın öğeleri döndürür.
- subtract (): Bu yöntem, öğeleri başka bir Sayaçtan çıkarmak için kullanılır.
- update (): Bu yöntem, öğeleri başka bir Sayaçtan güncellemek için kullanılır.
Örnek: elements ()
from collections import Countercounter1 = Counter({'x': 5, 'y': 2, 'z': -2, 'x1':0})_elements = counter1.elements() # will give you all elements with positive value and count>0for a in _elements:print(a)
Çıktı:
xxxxxyy
Örnek: most_common (değer)
from collections import Countercounter1 = 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)
Çıktı:
[('y', 12), ('x', 5)][('y', 12), ('x', 5), ('x1', 0), ('z', -2)]
Örnek: subtract ()
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})counter2 = Counter({'x': 2, 'y':5})counter1.subtract(counter2)print(counter1)
Çıktı:
Counter({'y': 7, 'x': 3, 'x1': 0, 'z': -2})
Örnek: update ()
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})counter2 = Counter({'x': 2, 'y':5})counter1.update(counter2)print(counter1)
Çıktı:
Counter({'y': 17, 'x': 7, 'x1': 0, 'z': -2})
Python'da Sayımları Yeniden Atama
Aşağıda gösterildiği gibi Sayaç sayılarını yeniden atayabilirsiniz:
Şu şekilde bir sözlüğünüz olduğunu düşünün: {'x': 5, 'y': 12, 'z': -2, 'x1': 0}
Eleman sayısını aşağıda gösterildiği gibi değiştirebilirsiniz:
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})counter1['y'] = 20print(counter1)
Çıktı: Çalıştırdıktan sonra y sayısının 12'den 20'ye değiştiğini göreceksiniz
Counter({'y': 20, 'x': 5, 'x1': 0, 'z': -2})
Counter kullanarak Element sayısını alın ve ayarlayın
Counter kullanarak bir elementin sayısını almak için şunları yapabilirsiniz:
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})print(counter1['y']) # this will give you the count of element 'y'
Çıktı:
12
Eleman sayısını ayarlamak için aşağıdaki işlemleri yapabilirsiniz:
from collections import Countercounter1 = Counter({'x': 5, 'y': 12, 'z': -2, 'x1':0})print(counter1['y'])counter1['y'] = 20counter1['y1'] = 10print(counter1)
Çıktı:
12Counter({'y': 20, 'y1': 10, 'x': 5, 'x1': 0, 'z': -2})
Özet:
- Sayaç, kapta bulunan öğelerin her birinin sayısını tutacak bir kaptır.
- Sayaç, sözlük sınıfında bulunan bir alt sınıftır.
- Python Sayacı aracını kullanarak, hashtable nesne olarak da adlandırılan bir nesnedeki anahtar-değer çiftlerini sayabilirsiniz.
- Sayaç, verileri, hashtable nesneler gibi sırasız bir koleksiyonda tutar. Buradaki öğeler anahtarları ve sayıları değer olarak temsil eder.
- Yinelenebilir bir listedeki öğeleri saymanıza olanak tanır.
- Toplama, çıkarma, kesişim ve birleştirme gibi aritmetik işlemler bir Sayaç üzerinde kolayca gerçekleştirilebilir.
- Bir Sayaç, başka bir sayaçtaki öğeleri de sayabilir.
- Bir Sayaçta bulunan önemli yöntemler elements (), most_common (değer), subtract () ve update () 'dir.
- Bir sayaç bir dizede, listede, sözlükte ve tuple üzerinde kullanılabilir.