๐ Python/๊ธฐ์ด
[Python] ์ ์ฌ ๋์ ๋๋ฆฌ defaultdict()
ใ
ใ
ใ
ใ
2022. 11. 4. 22:29
728x90
defaultdict : ๋์ ๋๋ฆฌ๋ฅผ ๋ง๋๋ dictํด๋์ค์ ์๋ธํด๋์ค
์ธ์๋ก ์ฃผ์ด์ง ๊ฐ์ฒด(default-factory)์ ๊ธฐ๋ณธ๊ฐ์ ๋์ ๋๋ฆฌ์ ์ด๊น๊ฐ์ผ๋ก ์ง์ ๊ฐ๋ฅ
์ซ์, ๋ฆฌ์คํธ, ์ ๋ฑ์ผ๋ก ์ด๊ธฐํํ ์ ์๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌ ์ฉ๋๋ก ์ฌ์ฉ ๊ฐ๋ฅํจ
1. default๊ฐ ์ซ์๋ก ์ค์
from collections import defaultdict
dict1 = defaultdict(int)
dict1
# defaultdict(int, {})
dict1['key']
# 0
- ๊ฐ์ ์ง์ ํ์ง ์์ผ๋ฉด key์ default๊ฐ์ด 0์ธ ๋์ ๋๋ฆฌ ์์ฑ
dict1['key2'] = 1
dict1['key2']
#1
- ๊ฐ์ ์ง์ ํ๋ฉด key๊ฐ ์์ฑ๋จ
2. default๊ฐ ๋ฆฌ์คํธ๋ก ์ค์
list_dict = defaultdict(list)
list_dict
# defaultdict(list, {})
- ๊ฐ์ ์ง์ ํ์ง ์์ผ๋ฉด key์ ๊ฐ์ด list์ธ ๋์ ๋๋ฆฌ๊ฐ ์์ฑ๋จ
list_dict['key1']
# []
list_dict['key2'] = 'abc'
list_dict['key2']
# 'abc'
list_dict
# defaultdict(list, {'key1': [], 'key2': 'abc'})
- key์ ๊ฐ์ ์ง์ ํ์ง ์์ผ๋ฉด list ํํ, key์ ๊ฐ์ ์ง์ ํ๋ฉด ํด๋น ๊ฐ์ผ๋ก ์ด๊ธฐํ
3. default๊ฐ set ์ค์
set_dict = defaultdict(set)
set_dict
# defaultdict(set, {})
- key์ ๊ฐ์ ์ง์ ํ์ง ์์ผ๋ฉด default๊ฐ set์ธ ๋์ ๋๋ฆฌ ์์ฑ
set_dict['key1']
# set()
set_dict['key2'] = 'abc'
set_dict
# defaultdict(set, {'key1': set(), 'key2': 'abc'})
4. defaultdict(int) ํ์ฉ ์์
letters = 'test123test'
letter_dict = defaultdict(int)
for x in letters:
letter_dict[x] += 1
letter_dict
# defaultdict(int, {'t': 4, 'e': 2, 's': 2, '1': 1, '2': 1, '3': 1})
Counter() ํจ์์ ๋น์ทํ๊ฒ ๊ตฌํ
728x90