1. Counter
Counter 클래스는 컨테이너 안의 데이터를 편리하고 빠르게 개수를 세도록 지원한다.
예를 들어, 중복된 원소가 있는 배열을 인자로 넘겨주면
각 원소의 그 개수를 사전 형식으로 반환한다.
import collections
a= [1,1,2,2,3,3,3,3]
cnt = collections.Counter(a)
print(cnt)
# Counter({3: 4, 1: 2, 2: 2})
2. Counter 클래스 함수
- elements() : 값의 요소를 풀어서 순서를 고려하지 않고 반환한다. 원소를 확인하기 위해 리스트로 감싼다. 그렇지 않으면 <itertools.chain object at 0x000001B0CE742850>을 반환한다.
import collections
a= [1,1,2,2,3,3,3,3]
cnt = collections.Counter(a)
print(cnt.elements())
print(list(cnt.elements()))
# <itertools.chain object at 0x000001AB808F2850>
# [1, 1, 2, 2, 3, 3, 3, 3]
- most_common(x) : 최빈값 상위 x개를 튜플 형식(최빈값, 개수)으로 반환한다. x가 없다면 모든 요소를 반환한다.
import collections
a= [1,1,2,2,3,3,3,3]
cnt = collections.Counter(a)
print(cnt.most_common())
print(cnt.most_common(1))
# [(3, 4), (1, 2), (2, 2)]
# [(3, 4)]
- subtract() : 값의 요소를 빼준다. = 중복되는 요소를 제거하여 원소와 그 개수를 반환한다. 만약 요소가 없을 경우 음수를 반환한다.
import collections
a= [1,1,2,2,3,3,3,3]
b=[1,2,3]
cnt = collections.Counter(a)
cnt2 = collections.Counter(b)
cnt.subtract(cnt2)
cnt2.subtract(cnt)
print(cnt)
print(cnt2)
# Counter({3: 3, 1: 1, 2: 1})
# Counter({1: 0, 2: 0, 3: -2})
또한 Counter는 산술 연산과 집합 연산이 가능하다.
subtract에서는 요소가 없을 경우 음수를 출력했지만 뺄샘에서는 음수는 출력하지 않는다.
728x90
'컴퓨터 > python' 카테고리의 다른 글
[python] 누적 곱 구하기 (0) | 2023.08.23 |
---|---|
[python] 문자열로 된 식을 계산하기 - eval, exec (0) | 2023.06.15 |
[python] 알파벳 리스트 만들기 (0) | 2023.06.15 |
[python] 중복 순열과 중복 조합 (0) | 2023.06.13 |
[python] Permutations와 Combinations (순열과 조합) (0) | 2023.06.10 |