count() ๋? ๐งฎ
1. count() ์ ์
- python ์ ๋ฆฌ์คํธ๋ ๋ฌธ์์ด๊ณผ ๊ฐ์ ์ํ์ค ๊ฐ์ฒด์์ ํน์ ๊ฐ์ ๊ฐ์๋ฅผ ์ธ๋ ๋ฉ์๋์ด๋ค
- ๋จ์ํ ํ๋์ ์์๊ฐ ๋ช ๋ฒ ๋ฑ์ฅํ๋์ง๋ฅผ ๋ฐํํ๋ค
- ์ธ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ ์ ํ์ง:
- ํน์ ๊ฐ ํ๋๋ง ๋น ๋ฅด๊ฒ ํ์ธํ๊ณ ์ถ์ ๊ฒฝ์ฐ
- ์:
- ๋ฆฌ์คํธ์์ ํน์ ์์์ ์กด์ฌ ์ฌ๋ถ๋ฅผ ๊ฒ์ฌํ๊ณ ์ ํ ๋
2. count() ๊ธฐ๋ณธ ๋ฌธ๋ฒ
๊ตฌ๋ฌธ
sequence.count(value)
์์
# ๋ฆฌ์คํธ์์ count ์ฌ์ฉ
numbers = [1, 2, 2, 3, 3, 3]
print(numbers.count(2)) # ์ถ๋ ฅ: 2
# ๋ฌธ์์ด์์ count ์ฌ์ฉ
text = "hello world"
print(text.count("l")) # ์ถ๋ ฅ: 3
ํน์ง
- ํน์ ๊ฐ ํ๋๋ง์ ์นด์ดํธ ํ ์ ์๋ค
- O(n) ์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค(๋ฆฌ์คํธ ๋๋ ๋ฌธ์์ด ์ ์ฒด๋ฅผ ์ํํ๋ค)
Counter() ๋? ๐งฎ
1. Counter() ์ ์
- python ์ `collections` ๋ชจ๋์ ํฌํจ๋ ํด๋์ค์ด๋ค
- ์ดํฐ๋ฌ๋ธ ์ ์ฒด์ ๊ฐ ์์ ๋น๋๋ฅผ ๋์
๋๋ฆฌ ํํ๋ก ๋ฐํ์ํจ๋ค
- ์ธ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ ์ ํ์ง:
- ๋ฐ์ดํฐ์ ๋น๋ ๋ถ์์ด ํ์ํ๊ฑฐ๋, ์ต๋ค ๋ฑ์ฅ ์์๋ฅผ ํ์ธํด์ผ ํ ๊ฒฝ์ฐ
- ์:
- ๋ฌธ์์ ๋น๋
- ์ด๋ฒคํธ ๋ก๊ทธ ๋ถ์
- ๋จ์ด ๋น๋ ๊ณ์ฐ ๋ฑ
2. Counter() ๊ธฐ๋ณธ ๋ฌธ๋ฒ
๊ตฌ๋ฌธ
from collections import Counter
Counter(iterable)
์์
from collections import Counter
# ๋ฆฌ์คํธ์์ Counter ์ฌ์ฉ
numbers = [1, 2, 2, 3, 3, 3]
counter = Counter(numbers)
print(counter) # ์ถ๋ ฅ: Counter({3: 3, 2: 2, 1: 1})
# ๋ฌธ์์ด์์ Counter ์ฌ์ฉ
text = "hello world"
counter = Counter(text)
print(counter) # ์ถ๋ ฅ: Counter({'l': 3, 'o': 2, 'h': 1, 'e': 1, ' ': 1, 'w': 1, 'r': 1, 'd': 1})
ํน์ง
- ์ดํฐ๋ฌ๋ธ ์ ์ฒด๋ฅผ ๋ถ์ํ์ฌ ๋ชจ๋ ์์์ ๋น๋๋ฅผ ๊ณ์ฐํ๋ค
- ๊ฒฐ๊ณผ๋ `dict` ํํ๋ก ๋ฐํ๋๋ฉฐ, ํค๊ฐ์ ์์, ๋ฐธ๋ฅ๊ฐ์ ๋น๋์๋ฅผ ๋ํ๋ธ๋ค
- ๊ฐ ์์์ ๋น๋๋ฅผ ํจ์จ์ ์ผ๋ก ๊ณ์ฐํ๋ฉฐ, ๋ค์ํ ๋ฉ์๋(`most_common()`, `elements()` •••)๋ฅผ ์ ๊ณตํ๋ค
count() ์ Counter() ์ ์ฃผ์ ์ฐจ์ด์ ๐
๊ตฌ๋ถ |
`count()` |
`Counter()` |
์ฉ๋ |
ํน์ ๊ฐ ํ๋์ ๊ฐ์๋ง ๊ณ์ฐํ๋ค |
์ดํฐ๋ฌ๋ธ ์ ์ฒด ๋ชจ๋ ๊ฐ์ ๋น๋๋ฅผ ๊ณ์ฐํจ |
๋ฐํ๊ฐ |
์ ์ |
`Counter()` ๊ฐ์ฒด๋ฅผ `dict` ํํ๋ก ๋ฐํ |
์
๋ ฅ ํ์
|
๋ฌธ์์ด, ๋ฆฌ์คํธ ๋ฑ์ ์ํ์ค |
์ดํฐ๋ฌ๋ธํ ๊ฐ์ฒด (๋ฆฌ์คํธ, ๋ฌธ์์ด, ํํ •••) |
๊ฒฐ๊ณผ ํ์ฉ๋ |
๋จ์ ์นด์ดํธ๋ฅผ ๋ฐํ์ํด |
๋น๋ ๋ถ์, ์ ๋ ฌ, ์ต๋ค ๋น๋ ์ถ์ถ์ด ๊ฐ๋ฅํจ |
์๊ฐ ๋ณต์ก๋ |
O(n) (= ๋จ์ผ ๊ฐ ํ์ธ) |
O(n) (= ์ ์ฒด ๋ถ์) |
1. ์์ ๋น๊ต ๐
`count()` ๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ
text = "banana"
print(text.count("a")) # ์ถ๋ ฅ: 3
- ๋จ์
- ๋ค๋ฅธ ๋ฌธ์๋ค์ ๋น๋๋ฅผ ์์๋ด๊ธฐ ์ํด์๋ `count()` ๋ฅผ ์ฌ๋ฌ ๋ฒ ํธ์ถํด์ผ ํจ
`Counter()` ๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ
from collections import Counter
text = "banana"
counter = Counter(text)
print(counter) # ์ถ๋ ฅ: Counter({'a': 3, 'n': 2, 'b': 1})
- ์ฅ์
- ํ ๋ฒ์ ๋ชจ๋ ๋ฌธ์์ ๋ํ ๋น๋๋ฅผ ๊ณ์ฐํ ์ ์๋ค
์ ๋ฆฌ ๐งน
- ๋จ์ํ๊ฒ ํ๋์ ์์์ ๋ํด์๋ง ๊ฒ์ฌ๊ฐ ํ์ํ ๊ฒฝ์ฐ: `count()`
- ์ฌ๋ฌ ์์, ๋น๋ ๊ณ์ฐ์ด ํ์ํ ๊ฒฝ์ฐ: `Counter()`
์ค๋ ๋ฐฐ์ด ๊ฒ:
ํ์ด์ฌ์๋ Counter() ์ ๋น์ทํ count() ๋ด์ฅํจ์๋ ์กด์ฌํ๋๊ตฌ๋~