반응형
문제를 풀면서 새롭게 알게 되거나, 자주 찾아보거나, 기억할 만한 내용 정리하기 (2024.10.15 ~ 추가중)
collections
Counter
from collections import Counter
개수를 세주는 Dictionary 형태의 클래스이다.
Counter(배열)
Counter(["hi", "hey", "hi", "hi", "hello", "hey"])
>>> Counter({'hi': 3, 'hey': 2, 'hello': 1})
각 원소가 몇 번씩 나오는지가 저장된 객체를 반환한다.
Counter(문자열)
Counter("hello world")
>>> Counter({'h': 1, 'e': 1, 'l': 3, 'o': 2, ' ': 1, 'w': 1, 'r': 1, 'd': 1})
문자가 문자열에서 몇 번씩 나타나는지를 알려주는 객체가 반환된다.
most_common()
데이터의 개수가 많은 순으로 정렬된 배열을 리턴한다.
Counter('hello world').most_common()
>>> [('l', 3), ('o', 2), ('h', 1), ('e', 1), (' ', 1), ('w', 1), ('r', 1), ('d', 1)]
most_common(k)
메서드의 인자로 숫자 k를 넘기면 그 숫자 만큼만 리턴하기 때문에, 가장 개수가 많은 K개의 데이터를 얻을 수 있다.
Counter('hello world').most_common(1)
>>> [('l', 3)]
산술 연산자 활용
Counter 객체간 덧셈, 뺄셈이 가능하다.
counter1 = Counter(["A", "A", "B"])
counter2 = Counter(["A", "B", "B"])
counter1 + counter2
>>> Counter({'A': 3, 'B': 3})
counter1 - counter2
>>> Counter({'A': 1})
주의 : 뺄샘의 결과로 0이나 음수가 나온 경우에는 최종 카운터 객체에서 제외가 된다.
deque
double-ended queue 의 줄임말로, 앞과 뒤에서 즉, 양방향에서 데이터를 처리할 수 있는 queue형 자료구조이다.
list와 유사하다.
from collections import deque
append(x)
list.append(x)와 마찬가지로 x를 deque의 오른쪽(마지막)에 추가(삽입)해준다.
deq = deque(['a', 'b', 'c'])
deq.append('d')
print(deq)
>>> deque(['a', 'b', 'c', 'd'])
appendleft(x)
appendleft(x)는 왼쪽 즉, 앞쪽에서 x를 추가(삽입)해주는 메소드이다.
deq = deque(['a', 'b', 'c'])
deq.appendleft('d')
print(deq)
>>> deque(['d', 'a', 'b', 'c'])
pop()
list.pop()과 같이 오른쪽(마지막)에서 부터 차례대로 제거와 반환(remove and return)을 하는 메소드이다.
deq = deque(['a', 'b', 'c'])
print('deque.pop() ->', end=' ')
while deq:
print(deq.pop(), end=' ')
>>> c b a
popleft()
왼쪽(앞쪽)에서 부터 차례대로 제거와 반환(remove and return)을 하는 메소드이다.
deq = deque(['a', 'b', 'c'])
print('deque.popleft() ->', end=' ')
while deq:
print(deq.pop(), end=' ')
>>> a b c
참고
https://choiiis.github.io/python/for-coding-test/
반응형
'기타' 카테고리의 다른 글
[Eclipse] C 코딩 환경 구축하기 (Windows) (0) | 2024.12.13 |
---|---|
[IntelliJ] Java 프로젝트 코딩 컨벤션 적용하기 (0) | 2024.08.21 |
네이버 vs 구글 Java 코딩 컨벤션 비교 및 선택 가이드 (0) | 2024.08.21 |
모놀리식 아키텍처(MA) vs 마이크로서비스 아키텍처(MSA) (2) | 2024.05.16 |
[AWS] IAM (Identity and Access Management) (0) | 2024.05.10 |