250x250
Link
๋‚˜์˜ GitHub Contribution ๊ทธ๋ž˜ํ”„
Loading data ...
Notice
Recent Posts
Recent Comments
๊ด€๋ฆฌ ๋ฉ”๋‰ด

Data Science LAB

[Python] ์œ ์‚ฌ ๋”•์…”๋„ˆ๋ฆฌ defaultdict() ๋ณธ๋ฌธ

๐Ÿ 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
Comments