728x90
๋์ ๋๋ฆฌ๋?
- ๋์ ๋๋ฆฌ๋ Key์ Value๋ฅผ ํ ์์ผ๋ก ๊ฐ์ง๋ ์๋ฃํ
- ์์) key๊ฐ baseball์ด๋ผ๋ฉด value๋ ์ผ๊ตฌ
- ์์ฐจ์ ์ผ๋ก ํด๋น ์์๊ฐ์ ๊ตฌํ์ง ์๊ณ Key๋ฅผ ํตํด Value๋ฅผ ์ป๋๋ค.
๋์ ๋๋ฆฌ๋ ์ด๋ป๊ฒ ๋ง๋ค๊น?
{Key1: Value1, Key2: Value2, Key3: Value3, ...}
- Key์ Value์ ์ ์ฌ๋ฌ ๊ฐ๊ฐ {}๋ก ๋๋ฌ์ธ์ฌ ์๊ณ ๊ฐ๊ฐ์ ์์๋ Key:Value ํํ๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ ์ผํ๋ก ๊ตฌ๋ถํ๋ค.
>>> dic = {'name': 'pey', 'phone': '010-9999-1234', 'birth': '1118'}
>>> a = {1: 'hi'}
>>> a = {'a': [1, 2, 3]}
๋์ ๋๋ฆฌ ์ ์ถ๊ฐ, ์ญ์ ํ๊ธฐ
01. ๋์ ๋๋ฆฌ ์ ์ถ๊ฐํ๊ธฐ
>>> a = {1: 'a'}
>>> a[2] = 'b'
>>> a
{1: 'a', 2: 'b'}
>>> a['name'] = 'pey'
>>> a
{1: 'a', 2: 'b', 'name': 'pey'}
>>> a[3] = [1, 2, 3]
>>> a
{1: 'a', 2: 'b', 'name': 'pey', 3: [1, 2, 3]}
02. ๋์ ๋๋ฆฌ ์์ ์ญ์ ํ๊ธฐ
>>> del a[1]
>>> a
{2: 'b', 'name': 'pey', 3: [1, 2, 3]}
del a[key]
๋์ ๋๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
01. ๋์ ๋๋ฆฌ์์ key๋ฅผ ์ฌ์ฉํด value ์ป๊ธฐ
>>> grade = {'pey': 10, 'julliet': 99}
>>> grade['pey']
10
>>> grade['julliet']
99
>>> a = {1:'a', 2:'b'}
>>> a[1]
'a'
>>> a[2]
'b'
- ์ฌ๊ธฐ์์ a[1]์ด ์๋ฏธํ๋ ๊ฒ์ ๋ฆฌ์คํธ๋ ํํ์ a[1]๊ณผ๋ ์ ํ ๋ค๋ฅด๋ค.
- ๋์ ๋๋ฆฌ ๋ณ์์์ [] ์์ ์ซ์ 1์ ๋ ๋ฒ์งธ ์์๋ฅผ ๋ํ๋ด๋ ๊ฒ์ด ์๋๋ผ Key์ ํด๋นํ๋ 1์ ๋ํ๋ธ๋ค.
- ๋์ ๋๋ฆฌ๋ ๋ฆฌ์คํธ๋ ํํ์ ์๋ ์ธ๋ฑ์ฑ ๋ฐฉ๋ฒ์ ์ ์ฉํ ์ ์๋ค.
02. ๋์ ๋๋ฆฌ ๋ง๋ค ๋ ์ฃผ์ํ ์ฌํญ
>>> a = {1:'a', 1:'b'}
>>> a
{1: 'b'}
- ๋์ ๋๋ฆฌ์์ Key๋ ๊ณ ์ ํ ๊ฐ์ด๋ฏ๋ก ์ค๋ณต๋๋ Key ๊ฐ์ ์ค์ ํด ๋์ผ๋ฉด ํ๋๋ฅผ ์ ์ธํ ๋๋จธ์ง ๊ฒ๋ค์ด ๋ชจ๋ ๋ฌด์๋๋ค๋ ์ ์ ์ฃผ์!
- ๋์ ๋๋ฆฌ์๋ ๋์ผํ Key๊ฐ ์ค๋ณต์ผ๋ก ์กด์ฌํ ์ ์๋ค.
>>> a = {[1,2] : 'hi'}
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
- Key์ ๋ฆฌ์คํธ๋ ์ธ ์ ์๋ค๋ ๊ฒ์ด๋ค. ํ์ง๋ง ํํ์ Key๋ก ์ธ ์ ์๋ค.
- ๋ฆฌ์คํธ๋ ๊ทธ ๊ฐ์ด ๋ณํ ์ ์๊ธฐ ๋๋ฌธ์ Key๋ก ์ธ ์ ์๋ค.
๋์ ๋๋ฆฌ ๊ด๋ จ ํจ์
01. key ๋ฆฌ์คํธ ๋ง๋ค๊ธฐ - keys
>>> a = {'name': 'pey', 'phone': '010-9999-1234', 'birth': '1118'}
>>> a.keys()
dict_keys(['name', 'phone', 'birth'])
- a.keys()๋ ๋์ ๋๋ฆฌ a์ Key๋ง์ ๋ชจ์ dict_keys ๊ฐ์ฒด๋ฅผ ๋ฆฌํด
- ๋ง์ฝ 3.0 ์ดํ ๋ฒ์ ์์ ๋ฆฌํด๊ฐ์ผ๋ก ๋ฆฌ์คํธ๊ฐ ํ์ํ ๊ฒฝ์ฐ์๋ list(a.keys())๋ฅผ ์ฌ์ฉ
- ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๋ณ ์ฐจ์ด๋ ์์ง๋ง, ๋ฆฌ์คํธ ๊ณ ์ ์ append, insert, pop, remove, sort ํจ์๋ ์ํํ ์ ์๋ค.
02. value ๋ฆฌ์คํธ ๋ง๋ค๊ธฐ - values
>>> a.values()
dict_values(['pey', '010-9999-1234', '1118'])
03. key, value ์ ์ป๊ธฐ - items
>>> a.items()
dict_items([('name', 'pey'), ('phone', '010-9999-1234'), ('birth', '1118')])
- items ํจ์๋ Key์ Value์ ์์ ํํ๋ก ๋ฌถ์ ๊ฐ์ dict_items ๊ฐ์ฒด๋ก ๋ฆฌํดํ๋ค.
04. key: value ์ ๋ชจ๋ ์ง์ฐ๊ธฐ - clear
>>> a.clear()
>>> a
{}
- clear ํจ์๋ ๋์ ๋๋ฆฌ ์์ ๋ชจ๋ ์์๋ฅผ ์ญ์ ํ๋ค.
05. key๋ก value ์ป๊ธฐ - get
>>> a = {'name': 'pey', 'phone': '010-9999-1234', 'birth': '1118'}
>>> a.get('name')
'pey'
>>> a.get('phone')
'010-9999-1234'
- get(x) ํจ์๋ x๋ผ๋ Key์ ๋์๋๋ Value๋ฅผ ๋ฆฌํด
- a.get('name')์ a['name']์ ์ฌ์ฉํ์ ๋์ ๋์ผํ ๊ฒฐ๊ด๊ฐ์ ๋ฆฌํด
>>> a = {'name':'pey', 'phone':'010-9999-1234', 'birth': '1118'}
>>> print(a.get('nokey'))
None
>>> print(a['nokey’])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'nokey'
- a['nokey']์ฒ๋ผ ๋์ ๋๋ฆฌ์ ์กด์ฌํ์ง ์๋ ํค๋ก ๊ฐ์ ๊ฐ์ ธ์ค๋ ค๊ณ ํ ๊ฒฝ์ฐ, a['nokey'] ๋ฐฉ์์ ์ค๋ฅ๋ฅผ ๋ฐ์์ํค๊ณ a.get('nokey') ๋ฐฉ์์ None์ ๋ฆฌํดํ๋ค๋ ์ฐจ์ด
>>> a.get('nokey', 'foo')
'foo'
- ๋์ ๋๋ฆฌ ์์ ์ฐพ์ผ๋ ค๋ Key๊ฐ ์์ ๊ฒฝ์ฐ, ๋ฏธ๋ฆฌ ์ ํด ๋ ๋ํดํธ ๊ฐ์ ๋์ ๊ฐ์ ธ์ค๊ฒ ํ๊ณ ์ถ์ ๋๋ get(x, '๋ํดํธ ๊ฐ')์ ์ฌ์ฉํ๋ฉด ํธ๋ฆฌ
06. ํด๋น key๊ฐ ๋์ ๋๋ฆฌ ์์ ์๋์ง ์กฐ์ฌํ๊ธฐ - in
>>> a = {'name':'pey', 'phone':'010-9999-1234', 'birth': '1118'}
>>> 'name' in a
True
>>> 'email' in a
False
- ๋ฐ๋ผ์ 'name' in a๋ฅผ ํธ์ถํ๋ฉด ์ฐธ(True)์ ๋ฆฌํดํ๋ค. ์ด์ ๋ฐ๋๋ก 'email'์ a ๋์ ๋๋ฆฌ ์์ ์กด์ฌํ์ง ์๋ Key์ด๋ฏ๋ก ๊ฑฐ์ง(False)์ ๋ฆฌํด
'ํ๋ก๊ทธ๋๋ฐ > ํ์ด์ฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
#2-7 ์๋ฃํ: ๋ถ ์๋ฃํ (0) | 2024.11.04 |
---|---|
#2-6 ์๋ฃํ: ์งํฉ ์๋ฃํ (0) | 2024.11.04 |
#2-4 ์๋ฃํ: ํํ ์๋ฃํ (1) | 2024.11.04 |
#2-3 ์๋ฃํ: ๋ฆฌ์คํธ ์๋ฃํ (0) | 2024.11.04 |
#2-2 ์๋ฃํ: ๋ฌธ์์ด ์๋ฃํ (2) | 2024.11.04 |