Coding Test/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