์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

์„œ๋ก 

Code๋ฅผ ๋ถ„์„ํ•  ์ผ์ด ์žˆ์—ˆ๋‹ค. ์งง์€ ์ฝ”๋“œ๋Š” ์•„๋‹ˆ์˜€์ง€๋งŒ, ๋จธ์‹ ๋น„์ „์— ๊ด€๋ จ๋œ ์ฝ”๋“œ์˜€๋‹ค. ์ฝ”๋“œ ๋‚ด๋ถ€์—๋Š” Python์œผ๋กœ defaultdict์— ๋Œ€ํ•ด์„œ ์จ์žˆ์—ˆ๋Š”๋ฐ, ๋ฌด์—‡์ธ์ง€ ๋ชฐ๋ผ์„œ ์„œ์ˆ ํ•œ๋‹ค.

defaultdict ์„ค๋ช…

์ •์˜ : defaultdict๋Š” Python์˜ collections ๋ชจ๋“ˆ์— ํฌํ•จ๋œ ํŠน๋ณ„ํ•œ ์‚ฌ์ „ ์ž๋ฃŒํ˜•
์ฐจ์ด์  : ๊ธฐ๋ณธ์ ์ธ ์‚ฌ์ „(dict)๊ณผ ์œ ์‚ฌํ•˜์ง€๋งŒ, defaultdict๋Š” ํ‚ค(key)๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์„ ๋•Œ ์ž๋™์œผ๋กœ ๊ธฐ๋ณธ ๊ฐ’์„ ์ƒ์„ฑํ•ด์ฃผ๋Š” ์ ์˜ ์ฐจ์ด๊ฐ€ ์žˆ์Œ
์ฃผ๋กœ ์‚ฌ์šฉ : ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ์—์„œ ๋ฏธ๋ฆฌ ๊ฐ’์„ ์ดˆ๊ธฐํ™”ํ•˜๊ฑฐ๋‚˜, ํ‚ค ์˜ค๋ฅ˜(KeyError)๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ ์ž ํ•  ๋•Œ ๋งค์šฐ ์œ ์šฉ

defaultdict ํ•„์š”ํ•œ ๊ฒฝ์šฐ

1. ์ดˆ๊ธฐ๊ฐ’ ์—†์ด ๊ฐ’ ์ถ”๊ฐ€

์ž‘์—… ์ƒ๋žต
์›๋ž˜ ํ•ด์•ผํ•˜๋Š” ์ดˆ๊ธฐํ™” ๊ณผ์ •

hobbies = defaultdict(list)
hobbies['James'].append('Piano')
hobbies['Bob'].append('Soccer')

# ์ถœ๋ ฅ : defaultdict(<class 'list'>, {'James': ['Piano'], 'Bob': ['Soccer']})
print(hobbies)

์ƒˆ๋กœ์šด ์ทจ๋ฏธ ๋“ฑ์žฅ์‹œ, ์ž๋™์œผ๋กœ ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ

2. ๊ธฐ๋ณธ ํ‚ค ๊ฐ’ ๋ฏธ๋ฆฌ ์ •ํ•ด ์˜ค๋ฅ˜ ๋ฐฉ์ง€

๊ธฐ๋ณธ์ ์ธ ์‚ฌ์ „ ์‚ฌ์šฉ

scores = defaultdict(int)
print(scores['Tom']) # ์ถœ๋ ฅ : 0 (Tom ํ‚ค ๊ฐ’์ด ์—†์œผ๋ฏ€๋กœ, ๊ธฐ๋ณธ๊ฐ’ 0 ๋ฐ˜ํ™˜)

๊ธฐ๋ณธ๊ฐ’ 0์œผ๋กœ ์„ค์ •ํ•˜์—ฌ, ํ‚ค ๊ฐ’์ด ์—†์„ ๋•Œ 0 ๋ฐ˜ํ™˜

defaultdict ์‚ฌ์šฉ๋ฒ•

from collections import defaultdict

# int ๊ธฐ๋ณธ๊ฐ’ ์ง€์ •, defaultdict ์ƒ์„ฑ
default_d = defaultdict(int)

# 'apple' ์ด๋ผ๋Š” ํ‚ค๊ฐ€ ์—†์œผ๋ฏ€๋กœ, ๊ธฐ๋ณธ๊ฐ’ 0 ์ƒ์„ฑ
print(default_d['apple']) # ์ถœ๋ ฅ : 0

default_factory ๋กœ list, set, int, float ๋“ฑ ๊ธฐ๋ณธ ์ž๋ฃŒํ˜• ์‚ฌ์šฉ ๊ฐ€๋Šฅ

ํƒœ๊ทธ:

์—…๋ฐ์ดํŠธ: