Python Sayğacı

Sistem dizaynı ilə bağlı müsahibə sualları o qədər açıq ola bilər ki, düzgün hazırlaşmağı bilmək çox çətindir. İndi satın aldıqdan sonra Amazon, Microsoft və Adobe-nin dizayn dövrlərini sındıra bilirəm Bu kitabı. Gündəlik bir yenidən nəzərdən keçirin dizayn sualı və söz verirəm ki, dizayn dövrünü sındıra bilərsiniz.

Python Counter nədir?

Python counter-da mövcud konteynerdir Collections modul. O, konteynerdə mövcud olan hər bir elementin sayını saxlayır.

Konteyner öz növbəsində obyektləri saxlayan bir obyekt kimi müəyyən edilə bilər. Obyektləri təkrarlamaqla onlara daxil ola bilərsiniz. Siyahı, Tuple və Lüğət daxili konteynerlərə nümunədir. Sayğaclar quraşdırılmış konteynerlərə alternativdir.

The Python lüğəti Python Counter-in super sinfidir. Beləliklə, bir lüğət kimi, sayğac da sırasız bir topludur. Sayğacda elementlər və onların müvafiq sayı lüğət formatında açar-dəyər cütü kimi saxlanılır. Bu, digər dillərdəki multisetlərə bənzəyir.

Python sayğacının işə salınması:

Sayğac tikintisini üç şəkildə adlandıra bilərik:

  • siyahı, tuple, strings və s. kimi elementlərin ardıcıllığı,
  • açarları və onların müvafiq say dəyərlərindən ibarət lüğət.
  • sətir adlarını müvafiq say dəyərlərinə uyğunlaşdıran açar söz arqumenti.
from collections import Counter

#sequence of items
print(Counter(('A','1','2','3','A','A','3','A')))

#dictionary containing keys and their respective counts
print(Counter({'A':1,'B':3,'C':7}))

#keyword arguments mapping keys to count values
print(Counter(A=1,B=3,C=7))

Çıxış:

Counter({'A': 4, '3': 2, '1': 1, '2': 1})
Counter({'C': 7, 'B': 3, 'A': 1})
Counter({'C': 7, 'B': 3, 'A': 1})

Python sayğacından elementlərin silinməsi:

del açar sözü ilə sayğacdan istənilən elementi elementləşdirə bilərik. Verilən element mövcud olmasa belə, heç bir xəta almayacağıq.

from collections import Counter

counter=Counter()
counter.update([1,3,2,1,4,3,2,2,3])
print(counter)
del counter[4]
print(counter)
Counter({3: 3, 2: 3, 1: 2, 4: 1})
Counter({3: 3, 2: 3, 1: 2})

Python sayğacında əməliyyatlar:

Python sayğacında toplama, çıxma, kəsişmə və birləşmə kimi arifmetik əməliyyatları yerinə yetirə bilərik.

  • Toplama və çıxma yalnız qaytarır müsbət ədədlər.
  • Kəsişmə hər iki sayğacda mövcud olan müsbət elementləri minimum dəyərlə qaytarır.
  • Union ilə hər iki sayğacda mövcud olan müsbət elementləri qaytarır maksimum dəyər.
from collections import Counter

counter=Counter()
counter1=Counter([1,3,2,1,4,3,2,2,3])
counter2=Counter((1,3,4,2,5))

#Addition
print(counter1+counter2)
#Subtraction
print(counter1-counter2)
#Intersection
print(counter1&counter2)
#union
print(counter1|counter2)
Counter({3: 4, 2: 4, 1: 3, 4: 2, 5: 1})
Counter({3: 2, 2: 2, 1: 1})
Counter({1: 1, 3: 1, 2: 1, 4: 1})
Counter({3: 3, 2: 3, 1: 2, 4: 1, 5: 1})

Ardıcıllığın fərqli elementlərini əldə edin:

Sayğacdan istifadə edə biləcəyimiz başqa bir üsul kolleksiyanın fərqli elementlərinin sayını əldə etməkdir.

from collections import Counter

sequence=[1,2,4,2,3,1,2,3,3,2,4,1]
print(Counter(sequence))
Counter({2: 4, 1: 3, 3: 3, 4: 2})

Python Counter-də ən çox istifadə olunan üsullar:

elementlər ():

elements() Counter sinifinin funksiyasıdır. Qaytarma növü itertools-dur, buna görə də sayğacda bütün məlum elementləri ehtiva edən iteratoru qaytarır.

<class 'itertools.chain'>

Parameters:

Heç bir parametr qəbul etmir.

Səhvlər və İstisnalar:

  • İteratoru qaytardığı üçün birbaşa çap edildikdə zibil dəyərini çap edir.
counter1=Counter(A=4,B=5,C=12)

print(counter1.elements())
<itertools.chain object at 0x02DAA370>
  • elements() yalnız müsbət sayı olan elementləri qaytarır, buna görə də sıfır və sıfır olanları nəzərə almır. mənfi dəyərlər.
from collections import Counter

sequence=Counter(a=2,d=-1,b=0,c=3)

for i in sequence.elements():
    print("% s : % s" % (i, sequence[i]))
a : 2
a : 2
c : 3
c : 3
c : 3

çıxmaq():

Sayğacdan keçən sayğacda mövcud olan elementləri çıxarır. elements()-dən fərqli olaraq, sıfır dəyərini, eləcə də mənfi hesab edən elementləri qaytarır.

from collections import Counter 

counter1=Counter(A=4,B=5,C=12) 
counter2=Counter(A=5,B=5,C=3) 
counter1.subtract(counter2) 

print(counter1)
Counter({'C': 9, 'B': 0, 'A': -1})

yeniləmə():

Biz ya boş sayğac yarada, ya da update() metodundan istifadə edərək mövcud sayğacı yeniləyə bilərik.

from collections import Counter 

#Initializing empty Counter 
counter=Counter() 
counter.update([1,3,2,1,4,3,2,2,3]) 
print(counter) 

counter.update((1,3,4,2)) 
print(counter)
Counter({3: 3, 2: 3, 1: 2, 4: 1}) 
Counter({3: 4, 2: 4, 1: 3, 4: 2})

Sayğacı yenilədikdə, mövcud məlumatlar əvəzlənməyəcək, artır.

 

Crack Sistemi Dizayn Müsahibələri
Translate »