[Python] Collections Module(Counter, defaultdict)

🙆‍♂️ import 🙇‍♂️

Practical Python Programming - 2.5 collections 모듈


Counter

Counter Module은 종류별로 카운팅이 필요할 때 사용하는 Module이다.

아래와 같은 정보에서 회사 별 주식 수를 카운팅 하고 싶다면 아래와 같이 Counter Module을 사용하면 된다.


portfolio = [
    ('GOOG', 100, 490.1),
    ('IBM', 50, 91.1),
    ('CAT', 150, 83.44),
    ('IBM', 100, 45.23),
    ('GOOG', 75, 572.45),
    ('AA', 50, 23.15)
]

from collections import Counter
total_shares = Counter()
for name, shares, price in portfolio:
    total_shares[name] += shares

print(total_shares['IBM'])
# 150

defaultdict

defaultdict Module일대다(One-Many) 매핑처럼 하나의 키에 여러 개의 값을 매핑하고 싶을 때 사용하는 Module이다.

아래와 같이 회사 별 보유하고 있는 총 주식 수를 알고 싶을 때 아래와 같이 defaultdict Module을 사용하면 하나의 키로 매핑 할 수 있다.

portfolio = [
    ('GOOG', 100, 490.1),
    ('IBM', 50, 91.1),
    ('CAT', 150, 83.44),
    ('IBM', 100, 45.23),
    ('GOOG', 75, 572.45),
    ('AA', 50, 23.15)
]

from collections import defaultdict
holdings = defaultdict(list)
for name, shares, price in portfolio:
    holdings[name].append((shares, price))

print(holdings['IBM'])
# [ (50, 91.1), (100, 45.23) ]

좋은 웹페이지 즐겨찾기