1. Dictionary (dict)
Dictionary๋ "ํค(Key) - ๊ฐ(Value)" ์์ ์์๋ก ๊ฐ๋ ์ปฌ๋ ์ ์ด๋ค.
Dictionary๋ ํํ Map ์ด๋ผ๊ณ ๋ ๋ถ๋ฆฌ์ฐ๋๋ฐ, ํค(Key)๋ก ์ ์ํ๊ฒ ๊ฐ(Value)์ ์ฐพ์๋ด๋ ํด์ํ ์ด๋ธ(Hash Table) ๊ตฌ์กฐ๋ฅผ ๊ฐ๋๋ค.
ํ์ด์ฌ์์ Dictionary๋ "dict" ํด๋์ค๋ก ๊ตฌํ๋์ด ์๋ค. Dictionary์ ํค(key)๋ ๊ทธ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๋ Immutable ํ์ ์ด์ด์ผ ํ๋ฉฐ, Dictionary ๊ฐ(value)์ Immutable๊ณผ Mutable ๋ชจ๋ ๊ฐ๋ฅํ๋ค. ์๋ฅผ ๋ค์ด, Dictionary์ ํค(key)๋ก ๋ฌธ์์ด์ด๋ Tuple์ ์ฌ์ฉ๋ ์ ์๋ ๋ฐ๋ฉด, ๋ฆฌ์คํธ๋ ํค๋ก ์ฌ์ฉ๋ ์ ์๋ค.
Dictionary์ ์์๋ค์ Curly Brace "{...}" ๋ฅผ ์ฌ์ฉํ์ฌ ์ปฌ๋ ์ ์ ํํํ๋๋ฐ, ๊ฐ ์์๋ค์ "Key:Value"" ์์ผ๋ก ๋์ด ์์ผ๋ฉฐ, ์์๊ฐ์ ์ฝค๋ง๋ก ๊ตฌ๋ถํ๋ค. ์์๊ฐ ์๋ ๋น Dictionary๋ "{}"์ ๊ฐ์ด ํํํ๋ค. ํน์ ์์๋ฅผ ์ฐพ์ ์ฝ๊ณ ์ฐ๊ธฐ ์ํด์๋ "Dictionary๋ณ์[ํค]"์ ๊ฐ์ด ํค๋ฅผ ์ธ๋ฑ์ค์ฒ๋ผ ์ฌ์ฉํ๋ค.
17. dictionary(๋์ ๋๋ฆฌ) - ํ์ด์ฌ - ๊ธฐ๋ณธ์ ๊ฐ๊ณ ๋ฆ์! (wikidocs.net)
#dictionary == haspMap == json
dic = {
"name":"์ฃผ์งํ",
"age":"25",
"hobby":["๋
์","๊ฒ์","์คํฌ์ธ "],
"address":"์์ธ์",
}
print(dic)
print(dic.keys())
print(dic.values())
print(dic.items())
print(dic['name'])
print(dic['hobby'][1]) #๊ฒ์
#์์
dic['name'] = '์ฑ์ถํฅ'
print(dic['name'])
#์ถ๊ฐ
dic['height'] = 175
print(dic)
#์ญ์
del dic['address']
print(dic)
if 'name' in dic:
print(dic['name'])
else:
print('์กด์ฌํ์ง์๋ key๊ฐ์
๋๋ค')
val = dic.get("age")
print(val)
for key in dic:
print(key, ":", dic[key])
1 2 3 4 |
scores = {"์ฒ ์": 90, "๋ฏผ์": 85, "์ํฌ": 80} v = scores["๋ฏผ์"] # ํน์ ์์ ์ฝ๊ธฐ scores["๋ฏผ์"] = 88 # ์ฐ๊ธฐ print(t) |
ํ์ด์ฌ์ Dictionary๋ ์์ฑํ๊ธฐ ์ํด ์์ ์์ ์ ๊ฐ์ด {...} ๋ฆฌํฐ๋ด(Literal)์ ์ฌ์ฉํ ์๋ ์์ง๋ง, ๋ํ dict ํด๋์ค์ dict() ์์ฑ์๋ฅผ ์ฌ์ฉํ ์๋ ์๋ค. dict() ์์ฑ์๋ (์๋ ์ฒซ๋ฒ์งธ ์์ฒ๋ผ) Key-Value ์์ ๊ฐ๋ Tuple ๋ฆฌ์คํธ๋ฅผ ๋ฐ์๋ค์ด๊ฑฐ๋ (๋๋ฒ์งธ ์์ฒ๋ผ) dict(key=value, key=value, ...) ์์ ํค-๊ฐ์ ์ง์ ํ๋ผ๋ฏธํฐ๋ก ์ง์ ํ๋ ๋ฐฉ์์ ์ฌ์ฉํ ์ ์๋ค.
1 2 3 4 5 6 7 8 9 10 |
# 1. Tuple List๋ก๋ถํฐ dict ์์ฑ persons = [('๊น๊ธฐ์', 30), ('ํ๋๊ธธ', 35), ('๊ฐ์ฐฌ์', 25)] mydict = dict(persons) age = mydict["ํ๋๊ธธ"] print(age) # 35 # 2. Key=Value ํ๋ผ๋ฏธํฐ๋ก๋ถํฐ dict ์์ฑ scores = dict(a=80, b=90, c=85) print(scores['b']) #90 |
2. ์ถ๊ฐ,์์ ,์ญ์ ,์ฝ๊ธฐ
Dictionary ์์๋ฅผ ์์ ํ๊ธฐ ์ํด์๋ "Dictionary[ํค]=์๊ฐ"์ ๊ฐ์ด ํด๋น ํค ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ์ฌ ์ ๊ฐ์ ํ ๋นํ๋ฉด ๋๋ค. Dictionary์ ์๋ก์ด ์์๋ฅผ ์ถ๊ฐํ๊ธฐ ์ํด์๋ ์์ ๋์ ๋ง์ฐฌ๊ฐ์ง๋ก ("๋งต[์ํค]=์๊ฐ") ์ ํค์ ์ ๊ฐ์ ํ ๋นํ๋ค. Dictionary ์์๋ฅผ ์ญ์ ํ๊ธฐ ์ํด์๋ "del ์์"์ ๊ฐ์ด ํ์ฌ ํน์ ์์๋ฅผ ์ง์ด๋ค.
1 2 3 4 5 6 |
scores = {"์ฒ ์": 90, "๋ฏผ์": 85, "์ํฌ": 80} scores["๋ฏผ์"] = 88 # ์์ scores["๊ธธ๋"] = 95 # ์ถ๊ฐ del scores["์ํฌ"] print(scores) # ์ถ๋ ฅ {'์ฒ ์': 90, '๊ธธ๋': 95, '๋ฏผ์': 88} |
Dictionary์ ์๋ ๊ฐ๋ค์ ๋ชจ๋ ์ถ๋ ฅํ๊ธฐ ์ํด์๋ ๋ค์๊ณผ ๊ฐ์ด ๋ฃจํ๋ฅผ ์ฌ์ฉํ ์ ์๋ค. ์๋ ์์ ์์ for ๋ฃจํ๋ scores ๋งต์ผ๋ก๋ถํฐ ํค๋ฅผ ํ๋์ฉ ๋ฆฌํดํ๊ฒ ๋๋ค. ์ด๋ ํค๋ ๋๋คํ๊ฒ ๋ฆฌํด๋๋๋ฐ, ์ด๋ ํด์ํ ์ด๋ธ์ ์์ฑ์ด๋ค. ๊ฐ ํค์ ๋ฐ๋ฅธ ๊ฐ์ ๊ตฌํ๊ธฐ ์ํด์๋ scores[key]์ ๊ฐ์ด ์ฌ์ฉํ๋ค.
1 2 3 4 5 |
scores = {"์ฒ ์": 90, "๋ฏผ์": 85, "์ํฌ": 80} for key in scores: val = scores[key] print("%s : %d" % (key, val)) |
3. ์ ์ฉํ dict ๋ฉ์๋
Dictonary์ ๊ด๋ จํ์ฌ dict ํด๋์ค์๋ ์ฌ๋ฌ ์ ์ฉํ ๋ฉ์๋๋ค์ด ์๋ค. dict ํด๋์ค์ keys()๋ Dictonary์ ํค๊ฐ๋ค๋ก ๋ dict_keys ๊ฐ์ฒด๋ฅผ ๋ฆฌํดํ๊ณ , values()๋ Dictonary์ ๊ฐ๋ค๋ก ๋ dict_values ๊ฐ์ฒด๋ฅผ ๋ฆฌํดํ๋ค.
1 2 3 4 5 6 7 8 9 10 11 |
scores = {"์ฒ ์": 90, "๋ฏผ์": 85, "์ํฌ": 80} # keys keys = scores.keys() for k in keys: print(k) # values values = scores.values() for v in values: print(v) |
dict์ items()๋ Dictonary์ ํค-๊ฐ ์ Tuple ๋ค๋ก ๊ตฌ์ฑ๋ dict_items ๊ฐ์ฒด๋ฅผ ๋ฆฌํดํ๋ค. ์ฐธ๊ณ ๋ก dict_items ๊ฐ์ฒด๋ฅผ ๋ฆฌ์คํธ๋ก ๋ณํํ๊ธฐ ์ํด์๋ list()๋ฅผ ์ฌ์ฉํ ์ ์๋ค. ์ด๋ dict_keys, dict_values ๊ฐ์ฒด์๋ ๊ณตํ ์ ์ฉ๋๋ค.
1 2 3 4 5 6 7 8 |
scores = {"์ฒ ์": 90, "๋ฏผ์": 85, "์ํฌ": 80} items = scores.items() print(items) # ์ถ๋ ฅ: dict_items([('๋ฏผ์', 85), ('์ํฌ', 80), ('์ฒ ์', 90)]) # dict_items๋ฅผ ๋ฆฌ์คํธ๋ก ๋ณํํ ๋ itemsList = list(items) |
dict.get() ๋ฉ์๋๋ ํน์ ํค์ ๋ํ ๊ฐ์ ๋ฆฌํดํ๋๋ฐ, ์ด๋ Dictionary[ํค]๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋น์ทํ๋ค. ๋จ, Dictionary[ํค]๋ฅผ ์ฌ์ฉํ๋ฉด ํค๊ฐ ์์ ๋ ์๋ฌ(KeyError)๋ฅผ ๋ฆฌํดํ๋ ๋ฐ๋ฉด, get()์ ํค๊ฐ Dictionary์ ์์ ๊ฒฝ์ฐ None์ ๋ฆฌํดํ๋ฏ๋ก ๋ ์ ์ฉํ ์ ์๋ค. ๋ฌผ๋ก get()์ ์ฌ์ฉํ๋ ๋์ ํด๋น ํค๊ฐ Dictionary์ ์กด์ฌํ๋์ง ์ฒดํฌํ๊ณ Dictionary[ํค]๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ๋ ์๋ค. ํค๊ฐ Dictionary์ ์กด์ฌํ๋์ง๋ฅผ ์ฒดํฌํ์ง ์ํด์๋ ๋ฉค๋ฒ์ฝ์ฐ์ฐ์ in ์ ์ฌ์ฉํ๋ฉด ๋๋ค.
1 2 3 4 5 6 7 8 9 10 11 |
scores = {"์ฒ ์": 90, "๋ฏผ์": 85, "์ํฌ": 80} v = scores.get("๋ฏผ์") # 85 v = scores.get("๊ธธ๋") # None v = scores["๊ธธ๋"] # ์๋ฌ ๋ฐ์ # ๋ฉค๋ฒ์ฝ์ฐ์ฐ์ in ์ฌ์ฉ if "๊ธธ๋" in scores: print(scores["๊ธธ๋"]) scores.clear() # ๋ชจ๋ ์ญ์ print(scores) |
dict.update() ๋ฉ์๋๋ Dictionary ์์ ์ฌ๋ฌ ๋ฐ์ดํ๋ฅผ ํ๊บผ๋ฒ์ ๊ฐฑ์ ํ๋๋ฐ ์ ์ฉํ ๋ฉ์๋์ด๋ค. ์๋ ์์ ์์ ์ฒ๋ผ, update() ์์ Dictionary ํํ๋ก ์ฌ๋ฌ ๋ฐ์ดํ์ ๊ฐ์ ๋ณ๊ฒฝํ๋ฉด, ํด๋น ๋ฐ์ดํ๋ค์ด update() ๋ฉ์๋์ ์ํด ํ๊บผ๋ฒ์ ์์ ๋๋ค.
1 2 3 4 |
persons = [('๊น๊ธฐ์', 30), ('ํ๋๊ธธ', 35), ('๊ฐ์ฐฌ์', 25)] mydict = dict(persons) mydict.update({'ํ๋๊ธธ':33,'๊ฐ์ฐฌ์':26}) |
'๐ ํ์ด์ฌ Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ์ด์ฌ - ๊ฐ์ ๋ฐ์ ๋ณด Program ๋ง๋ค๊ธฐ (0) | 2021.06.28 |
---|---|
ํ์ด์ฌ - Import math , random (0) | 2021.06.28 |
ํ์ด์ฌ - list, tuple (0) | 2021.06.27 |
ํ์ด์ฌ - Datetime & if ์กฐ๊ฑด๋ฌธ (0) | 2021.06.26 |
ํ์ด์ฌ(phython) ๊ธฐ๋ณธ print (0) | 2021.06.26 |
๋๊ธ