ํ์ด์ฌ์ ๋์ ๊ด๊ณ๋ฅผ ๋ํ๋ผ ์ ์๋ ์๋ฃํ์ ๊ฐ์ง๊ณ ์๋ค. ์ด๋ฅผ ์ฐ๊ด ๋ฐฐ์ด ๋๋ ํด์(Hash) ๋ผ๊ณ ํ๋ค.
ํ์ด์ฌ์์ ์ด๋ฌํ ์๋ฃํ์ ๋์ ๋๋ฆฌ(Dictionary)๋ผ๊ณ ํ๋๋ฐ, Key์ Value๋ฅผ ํ ์์ผ๋ก ๊ฐ๋ ์๋ฃํ์ด๋ค.
๋์ ๋๋ฆฌ๋ ๋ฆฌ์คํธ๋ ํํ์ฒ๋ผ ์์ฐจ์ ์ผ๋ก ํด๋น ์์๊ฐ์ ๊ตฌํ์ง ์๊ณ Key๋ฅผ ํตํด Value๋ฅผ ์ป๋๋ค.
-๊ธฐ๋ณธ ๋์ ๋๋ฆฌ
{Key1:Value1, Key2:Value2, Key3:Value3, …}
โ Key์๋ ๋ณํ์ง ์๋ ๊ฐ์ ์ฌ์ฉํ๊ณ , Value์๋ ๋ณํ๋ ๊ฐ๊ณผ ๋ณํ์ง ์๋ ๊ฐ ๋ชจ๋ ์ฌ์ฉํ ์ ์๋ค.
>>> dic = {'name':'Tom', 'phone':'01012345678', 'birth':'1010'}
Key | Value |
name | Tom |
phone | 01012345678 |
birth | 1010 |
-Key๋ก ์ ์ ๊ฐ 1, Value๋ก ๋ฌธ์์ด 'hello' ์ฌ์ฉ
>>> a = {1: 'hello'}
-Value์ ๋ฆฌ์คํธ ๋ฃ๊ธฐ
>>> a = ['a': [1, 2, 3]}
โถ ๋์ ๋๋ฆฌ ์ ์ถ๊ฐ, ์ญ์ ํ๊ธฐ
-๋์ ๋๋ฆฌ ์ ์ถ๊ฐํ๊ธฐ
>>> a = {1: 'a'}
>>> a[2] = 'b' ← {2: 'b'} ์ ์ถ๊ฐ
>>> a
{1: 'a', 2: 'b'}
{1: 'a'} ๋์ ๋๋ฆฌ์ a[2] = 'b' ์ ๊ฐ์ด ์ ๋ ฅํ๋ฉด ๋์ ๋๋ฆฌ a์ Key์ Value๊ฐ ๊ฐ๊ฐ 2์ 'b'์ธ 2: 'b'๋ผ๋ ๋์ ๋๋ฆฌ ์์ด ์ถ๊ฐ๋๋ค.
>>> a['name'] = 'Tom' ← {'name': 'Tom'} ์ ์ถ๊ฐ
>>> a
{1: 'a', 2: 'b', 'name': 'Tom'}
๋์ ๋๋ฆฌ a์ 'name': 'Tom'๋ผ๋ ์์ด ์ถ๊ฐ๋์๋ค.
>>> a[3] = [1, 2, 3] ← {3: [1, 2, 3]} ์ ์ถ๊ฐ
>>> a
{1: 'a', 2: 'b', 'name': 'Tom', 3: [1, 2, 3]}
Key๋ 3, Value๋ [1, 2, 3]์ ๊ฐ์ง๋ ํ ์์ด ๋ ์ถ๊ฐ๋์๋ค.
-๋์ ๋๋ฆฌ ์์ ์ญ์ ํ๊ธฐ
>>> del a[1]
>>> a
{'name': 'Tom', 3: [1, 2, 3], 2: 'b'}
del ํจ์๋ฅผ ์ฌ์ฉํด์ del a[key]์ฒ๋ผ ์ ๋ ฅํ๋ฉด ์ง์ ํ Key์ ํด๋นํ๋ {key: value} ์์ด ์ญ์ ๋๋ค.
โถ ๋์ ๋๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
{"๊น์ฐ์":"ํผ๊ฒจ์ค์ผ์ดํ
", "๋ฅํ์ง":"์ผ๊ตฌ", "๋ฐ์ง์ฑ":"์ถ๊ตฌ"}
↑ ์ฌ๋ ์ด๋ฆ๊ณผ ํน๊ธฐ๋ฅผ ํ ์์ผ๋ก ํ๋ ๋์ ๋๋ฆฌ
โถ ๋์ ๋๋ฆฌ์์ Key๋ฅผ ์ฌ์ฉํด Value ์ป๊ธฐ
>>> grade = {'Tom': 10, 'Jenny': 99}
>>> grade['Tom'] ← Key๊ฐ 'Tom'์ธ ๋์
๋๋ฆฌ์ Value๋ฅผ ๋ฐํ
10
>>> grade['Jenny'] ← Key๊ฐ 'Jenny'์ธ ๋์
๋๋ฆฌ์ Value๋ฅผ ๋ฐํ
99
๋ฆฌ์คํธ๋ ํํ, ๋ฌธ์์ด์ ์์๊ฐ์ ์ป๊ณ ์ ํ ๋ ์ธ๋ฑ์ฑ์ด๋ ์ฌ๋ผ์ด์ฑ ๊ธฐ๋ฒ ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ง๋ง ๋์ ๋๋ฆฌ๋ Key๋ฅผ ์ฌ์ฉํด์ Value๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ ๋ฟ์ด๋ค.
>>> a = {1: 'a', 2: 'b'}
>>> a[1] ← Key๊ฐ 1์ธ ์์์ Value๋ฅผ ๋ฐํ
'a'
>>> a[2] ← Key๊ฐ 2์ธ ์์์ Value๋ฅผ ๋ฐํ
'b'
๋์ ๋๋ฆฌ๋ ๋ฆฌ์คํธ๋ ํํ์ ์๋ ์ธ๋ฑ์ฑ ๋ฐฉ๋ฒ์ ์ ์ฉํ ์ ์๋ค. ๋ฐ๋ผ์ a[1]์ ๋์ ๋๋ฆฌ {1: 'a', 2: 'b'}์์ Key๊ฐ 1์ธ ๊ฒ์ Value์ธ 'a'๋ฅผ ๋๋ ค์ฃผ๊ฒ ๋๋ค.
>>> a = {'a': 1, 'b': 2}
>>> a['a']
1
>>> a['b']
2
๋์ ๋๋ฆฌ a๋ a[key]๋ก ์ ๋ ฅํด์ Key์ ํด๋นํ๋ Value๋ฅผ ์ป๋๋ค.
>>> dic = {'name': 'Tom', 'phone': '01012345678', 'birth': '1010'}
>>> dic['name']
'Tom'
>>> dic['phone']
'01012345678'
>>> dic['birth']
'1010'
↑ Key๋ฅผ ์ฌ์ฉํด์ Value๋ฅผ ์ป๋ ๋ฐฉ๋ฒ
-๋์ ๋๋ฆฌ ๋ง๋ค ๋ ์ฃผ์ํ ์ฌํญ
๋์ ๋๋ฆฌ์์ Key๋ ๊ณ ์ ํ ๊ฐ์ด๋ฏ๋ก ์ค๋ณต๋๋ Key ๊ฐ์ ์ค์ ํด ๋์ผ๋ฉด ํ๋๋ฅผ ์ ์ธํ ๋๋จธ์ง ๊ฒ๋ค์ด ๋ชจ๋ ๋ฌด์๋๋ค๋ ์ ์ ์ฃผ์ํด์ผ ํ๋ค.
>>> a = {1: 'a', 1: 'b'} ← 1์ด๋ผ๋ Key ๊ฐ์ด ์ค๋ณต์ผ๋ก ์ฌ์ฉ
>>> a
{1: 'b'} ← 1: 'a' ์์ด ๋ฌด์๋จ
โ ๋ง์ง๋ง Key๋ง ๊ฐ์ผ๋ก ์ธ์ ๋๋๋ฏ
>>> a = {[1, 2] : 'hi'} ← ๋ฆฌ์คํธ๋ฅผ Key๋ก ์ฌ์ฉ
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list' ← ์ค๋ฅ ๋ฐ์
Key์ ๋ฆฌ์คํธ๋ ์ธ ์ ์๋ค. ํ์ง๋ง ํํ์ Key๋ก ์ธ ์ ์๋ค.
๋์ ๋๋ฆฌ์ Key๋ก ์ธ ์ ์๋๋ ์๋๋๋ Key๊ฐ ๋ณํ๋ ๊ฐ์ธ์ง ๋ณํ์ง ์๋ ๊ฐ์ธ์ง์ ๋ฌ๋ ค ์๋ค.
๋ฆฌ์คํธ๋ ๊ทธ ๊ฐ์ด ๋ณํ ์ ์๊ธฐ ๋๋ฌธ์ Key๋ก ์ธ ์ ์๋ค.
โถ ๋์ ๋๋ฆฌ ๊ด๋ จ ํจ์
-Key ๋ฆฌ์คํธ ๋ง๋ค๊ธฐ(keys)
>>> a = {'name': 'Tom', 'phone': '01012345678', 'birth': '1010'}
>>> a.keys()
dict_keys(['name', 'phone', 'birth'])
a.keys()๋ ๋์ ๋๋ฆฌ a์ key๋ง์ ๋ชจ์์ dict_keys ๊ฐ์ฒด๋ฅผ ๋๋ ค์ค๋ค.
>>> for k in a.keys():
... print(k)
...
name
phone
birth
dict_keys ๊ฐ์ฒด๋ ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉํ ์ ์๋ค. ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ์ฐจ์ด๊ฐ ์์ง๋ง, ๋ฆฌ์คํธ ๊ณ ์ ์ append, insert, pop, remove, sort ํจ์๋ ์ํํ ์ ์๋ค.
โ print(k)๋ฅผ ์ ๋ ฅํ ๋ ๋ค์ฌ์ฐ๊ธฐ๋ฅผ ํ์ง ์์ผ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํจ
>>> list(a.keys())
['name', 'phone', 'birth']
dict_keys ๊ฐ์ฒด๋ฅผ ๋ฆฌ์คํธ๋ก ๋ณํํ๋ ค๋ฉด ์์ ๊ฐ์ด ํ๋ฉด ๋๋ค.
-Value ๋ฆฌ์คํธ ๋ง๋ค๊ธฐ(values)
>>> a.values()
dict_values(['Tom', '01012345678', '1010'])
Value๋ง ์ป๊ณ ์ถ๋ค๋ฉด values ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค. values ํจ์๋ฅผ ํธ์ถํ๋ฉด dict_values ๊ฐ์ฒด๋ฅผ ๋๋ ค์ค๋ค.
-Key, Value ์ ์ป๊ธฐ(items)
>>> a.items()
dict_items([('name', 'Tom'), ('phone', '01012345678'), ('birth', '1010')])
items ํจ์๋ Key์ Value์ ์์ ํํ๋ก ๋ฌถ์ ๊ฐ์ dict_items ๊ฐ์ฒด๋ก ๋๋ ค์ค๋ค.
dict_values ๊ฐ์ฒด์ dict_items ๊ฐ์ฒด ์ญ์ dict_keys ๊ฐ์ฒด์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋์ผํ๊ฒ ์ฌ์ฉํ ์ ์๋ค.
-Key: Value ์ ๋ชจ๋ ์ง์ฐ๊ธฐ(clear)
>>> a.clear()
>>> a
{}
clear ํจ์๋ ๋์ ๋๋ฆฌ ์์ ๋ชจ๋ ์์๋ฅผ ์ญ์ ํ๋ค. ๋น ๋ฆฌ์คํธ๋ฅผ [ ], ๋น ํํ์ ( )๋ก ํํํ๋ ๊ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๋น ๋์ ๋๋ฆฌ๋ { }๋ก ํํํ๋ค.
-Key๋ก Value ์ป๊ธฐ(get)
>>> a = {'name': 'Tom', 'phone': '01012345678', 'birth': '1010'}
>>> a.get('name')
'Tom'
>>> a.get('phone')
'01012345678'
get(x) ํจ์๋ x๋ผ๋ Key์ ๋์๋๋ Value๋ฅผ ๋๋ ค์ค๋ค.
>>> a = {'name': 'Tom', 'phone': '01012345678', 'birth': '1010'}
>>> print(a.get('nokey')) ← None์ ๋ฆฌํดํจ
None
>>> print(a['nokey'])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'nokey'
์กด์ฌํ์ง ์๋ ํค๋ก ๊ฐ์ ๊ฐ์ ธ์ค๋ ค๊ณ ํ ๊ฒฝ์ฐ Key ์ค๋ฅ๋ฅผ ๋ฐ์์ํค๊ณ None์ ๋๋ ค์ค๋ค.
>>> a.get('foo', 'bar')
'bar'
๋ฏธ๋ฆฌ ์ ํด๋ ๋ํดํธ ๊ฐ์ ๋์ ๊ฐ์ ธ์ค๊ฒ ํ๊ณ ์ถ์ ๋์๋ get(x, '๋ํดํธ ๊ฐ')์ ์ฌ์ฉํ๋ฉด ํธ๋ฆฌํ๋ค.
-ํด๋น Key๊ฐ ๋์ ๋๋ฆฌ ์์ ์๋์ง ์กฐ์ฌํ๊ธฐ(in)
>>> a = {'name': 'Tom', 'phone': '01012345678', 'birth': '1010'}
>>> 'name' in a
True
>>> 'email' in a
False
์ฐธ์ด๋ฉด True, ๊ฑฐ์ง์ด๋ฉด False๋ฅผ ์ถ๋ ฅํ๋ค.
'Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] ๋ถ ์๋ฃํ (0) | 2021.02.10 |
---|---|
[Python] ์งํฉ ์๋ฃํ (0) | 2021.02.10 |
[Python] ํํ ์๋ฃํ (0) | 2021.02.05 |
[Python] ๋ฆฌ์คํธ ๊ด๋ จ ํจ์ (0) | 2021.02.05 |
[Python] ๋ฆฌ์คํธ ์๋ฃํ (0) | 2021.02.05 |
๋๊ธ