ror_coding

[Python] Counter (collections) 본문

Algorithm/Python

[Python] Counter (collections)

ro_rdil_31 2024. 10. 24. 15:25
728x90
collections Library 불러오기.
from collections import Counter

 

 

Counter를 적용한 data.
data = [1,4,2,2,3,3,5,5]
data = Counter(data) # O(n)

 

 

1. most_common() : 빈도 순으로 정렬하여 출력.
for item, count in data.most_common(): # O(n log n)
	print(item, count)
Element: 3, Count: 2
Element: 2, Count: 2
Element: 5, Count: 2
Element: 1, Count: 1
Element: 4, Count: 1

 

 

2. elements() : 각 요소를 해당 카운트만큼 반복해서 반환하는 iterater. (0 or 음수 무시)
list(data.elements()) # O(n)
[3, 3, 2, 2, 5, 5, 1, 4]

 

 

3. + 덧셈 연산 : 두 개의 Counter 객체 더해서 빈도수 합산.
counter1 = Counter({1: 2, 2: 3})
counter2 = Counter({2: 1, 3: 2})

result = counter1 + counter2 # O(n)
print(result)
Counter({2: 4, 1: 2, 3: 2})

 

 

4. - 뺄셈 연산 : 두 개의 Counter 객체에서 공통된 값의 빈도를 뺌. (음수는 무시.)
counter1 = Counter({1: 2, 2: 3})
counter2 = Counter({2: 1, 3: 2})

result = counter1 - counter2
print(result)
Counter({1: 2, 2: 2})

 

 

5. & 교집합 : 공통된 항목 중 최소 빈도수 반환.
counter1 = Counter({1: 2, 2: 3, 3: 1})
counter2 = Counter({2: 1, 3: 2})

result = counter1 & counter2
print(result)
Counter({2: 1, 3: 1})

 

 

6. | 합집합 : 공통된 항목 중 최대 빈도수 반환.
counter1 = Counter({1: 2, 2: 3, 3: 1})
counter2 = Counter({2: 1, 3: 2})

result = counter1 | counter2
print(result)
Counter({2: 3, 3: 2, 1: 2})

 

 

 

 

 

 

728x90