ํฐ์คํ ๋ฆฌ ๋ทฐ
๐โ๏ธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด/Python
Python: collections ํ์ฉํ๊ธฐ
dirmathfl 2020. 6. 5. 11:31728x90
๋ฐ์ํ
namedtuple
from collections import namedtuple
person_info = namedtuple("info", "name age address")
info = person_info("kim", 12, "111-11")
info.name
,info.age
,info.address
์ ๊ฐ์ด ์ ๊ทผ ํ ์ ์๋ค.- name, age, address๋ฅผ ์ธ๋ฑ์ค 0 ~ 2(ex: info[0])๋ก๋ ์ ๊ทผํ ์ ์๋ค.
defaultdict
๋์ ๋๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ค ๋ณด๋ฉด, ์ด๋ค ํค์ ๋ํ ๊ฐ์ด ์๋ ๊ฒฝ์ฐ์ ๋ํ ์ฒ๋ฆฌ๋ฅผ ํด์ผํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค.
๋์ ๋๋ฆฌ์ ๋ํ ์ด๊ธฐ๊ฐ์ ์ง์ ํ๊ณ ์ ํ ๋
defualtdict
์ ์ฌ์ฉํ ์ ์๋ค.
def cnt_word(words):
cnt = {}
for word in words:
if word not in cnt:
cnt[word] = 0
cnt[word] += 1
return cnt
- ์์ ์ฝ๋๋ ๋์ ๋๋ฆฌ์ ํด๋น word๊ฐ ์์ผ๋ฉด 0์ผ๋ก ์ด๊ธฐํ ํด์ฃผ๊ณ , ์๋ ๊ฒฝ์ฐ +1์ ํ์ฌ ์นด์ดํธ ํ๋ค.
from collections import defaultdict
def cnt_word(words):
cnt = defaultdict(int)
for word in words:
cnt[word] += 1
return cnt
int()
์ ๋ฐํ ๊ฐ์ 0 ์ด๋ฏ๋ก, ๋์ ๋๋ฆฌ์ ์ด๊ธฐ ๊ฐ์ 0์ผ๋ก ์ค์ ๋๋ค.- ๋ฐ๋ผ์ ์์ ๊ฐ์ด if ๋ฌธ์ ํตํด ์ด๊ธฐํ ๊ณผ์ ์ ์งํํ์ง ์์๋ ๋๋ค.
deque
์คํ๊ณผ ํ์ ๊ธฐ๋ฅ์ ๋ชจ๋ ๊ฐ์ง ๊ฐ์ฒด๋ก ์ฌ์ฉํ๋ ๋ฉ์๋์ ๋ฐ๋ผ ๊ธฐ๋ฅ์ ๋ฌ๋ฆฌ ์ฌ์ฉํ ์ ์๋ค.
from collections import deque
# stack๋ก ์ฌ์ฉ
# ์
/์ถ๋ ฅ ์ฐ
# FIFO
dq = deque('1234')
dq.append('5')
dq.pop()
# queue๋ก ์ฌ์ฉ
# ์
๋ ฅ ์ฐ, ์ถ๋ ฅ ์ข
# LIFO
dq.append('5')
dq.popleft()
- ๊ฐ์ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ ๋,
append
,pop
์ ์ฌ์ฉํ๋ฉด ์คํ ์ฒ๋ผ ์ฌ์ฉํ ์ ์๋ค. - ๊ฐ์ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ ๋,
append
,leftpop
์ ์ฌ์ฉํ๋ฉด ํ ์ฒ๋ผ ์ฌ์ฉํ ์ ์๋ค.
Counter
๋ฆฌ์คํธ๋ ์คํธ๋ง์์์ ๊ฐ ์์๋ค์ ์นด์ดํธํ ๋ ์ ์ฉํ๊ฒ ์ฌ์ฉํ ์ ์๋ค.
from collections import Counter
nums = [1, 3, 5, 9, 1, 2, 3, 5, 12, 15, 19, 5]
# count๊ฐ ๋์ ์ ๋ถํฐ ๋์
๋๋ฆฌ๋ก ๋ฐํ๋จ
print(Counter(nums).most_common())
# count๊ฐ ๊ฐ์ฅ ๋์ ์๋ง ์ถ๋ ฅ
print(Counter(nums).most_common(1))
- Counter์ ๊ฒฝ์ฐ ๋์ ๋๋ฆฌ์ ํ์ฅ์ด๊ธฐ์, ๋์ ๋๋ฆฌ์ ์ฌ์ฉํ๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
- ๋ง์ฝ Counter์์ ์ต๋ ๊ฐ์ ์๋ฅผ ๋ฐํํ๊ณ ์ ํ๋ค๋ฉด
Counter(nums).most_common()[0][1]
๋ก ์ฌ์ฉํ๋ค.
728x90
๋ฐ์ํ
'๐โโ๏ธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Python: sort, sorted ํ์ฉํ๊ธฐ (0) | 2020.09.23 |
---|---|
Python: ๋ฌธ์ ์ ๊ทผ ์๋๋ฅผ ๋์ฌ์ฃผ๋ ์ฝ๋๋ค (0) | 2020.06.07 |
Python: itertools ํ์ฉํ๊ธฐ (0) | 2020.06.06 |
Python: heapq ํ์ฉํ๊ธฐ (0) | 2020.06.04 |
Python: List ํ์ฉํ๊ธฐ (0) | 2020.06.03 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ