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)์„ ๋ฆฌํ„ด

+ Recent posts