일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 조합
- Stack
- time complexity
- BFS
- CodingTest
- Level2
- sql
- 파이썬
- 데이터분석
- python
- counter
- 연습문제
- Queue
- 시간복잡도
- level4
- coding test
- 완전탐색
- programmers
- coding
- 프로그래머스
- 코딩테스트
- join
- mysql
- 코테
- lv4
- lambda
- import re
- collections
- itertools
- 코딩
- Today
- Total
ror_coding
[Python] Counter (collections) 본문
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
'Algorithm > Python' 카테고리의 다른 글
[Programmers] 신규 아이디 추천 - 72410 (0) | 2024.10.25 |
---|---|
[Programmers] [PCCE 기출문제] 10번 / 데이터 분석 - 250121 (1) | 2024.10.25 |
[Programmers] [카카오 인턴] 키패드 누르기 - 67256 (1) | 2024.10.24 |
[Programmers] 크레인 인형뽑기 게임 - 64061 (0) | 2024.10.24 |
[Programmers] 귤 고르기 - 138476 (0) | 2024.10.24 |