๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Developer/๐Ÿฆœ python

ํŒŒ์ด์ฌ(python) - ๋”•์…”๋„ˆ๋ฆฌ(dictionary) ๋ฌธ๋ฒ• ๊ธฐ๋ณธ

๋”•์…”๋„ˆ๋ฆฌ(dictionary)

 

๋”•์…”๋„ˆ๋ฆฌ๋Š” ํ‚ค(key)์™€ ๊ฐ’(value)๋กœ ์ด๋ค„์–ด์ง‘๋‹ˆ๋‹ค.

 

ํ‚ค(key)์™€ ๊ฐ’(value)์€ ์Œ์„ ์ด๋ฃจ๋ฉด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

 

์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์„ ์–ธํ•˜๋ฉด์„œ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

 

>>> dict = {'a' : 1 , 'b' : 'good'}
>>> dict
{'a': 1, 'b': 'good'}

 

๋˜๋Š” ์„ ์–ธ์„ ํ•œ ๋’ค ๊ฐ’์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

>>> dict = {}
>>> dict
{}
>>> dict['a'] = 123
>>> dict
{'a': 123}

 

list์™€ ๋‹ค๋ฅด๊ฒŒ append() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€์•Š์•„ ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

 

๋˜ํ•œ ๋ฆฌ์ŠคํŠธ์™€ ๋‹ค๋ฅด๊ฒŒ ์ธ๋ฑ์Šค๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์—†๊ณ  ํ‚ค๋กœ ์ ‘๊ทผํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

 

>>> dict
{'a': 'apple', 'b': 'banana', 'c': 'melon'}
>>> dict['0']
Traceback (most recent call last):
  File "<pyshell#47>", line 1, in <module>
    dict['0']
KeyError: '0'
>>> dict['a']
'apple'

 

๊ฐ’์„ ์ˆ˜์ •ํ•˜๋Š”๊ฒƒ์€ ํ‚ค ๊ฐ’์„ ์ด์šฉํ•˜๋ฉด๋ฉ๋‹ˆ๋‹ค.

 

>>> dict['a']
'apple'
>>> dict['a'] = 'orange'
>>> dict
{'a': 'orange', 'b': 'banana', 'c': 'melon'}

 

๋”•์…”๋„ˆ๋ฆฌ์—์„œ ์š”์†Œ๋ฅผ ์‚ญ์ œํ•˜๋ ค๋ฉด list์™€ ๊ฐ™์ด delํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

>>> dict
{'a': 'orange', 'b': 'banana', 'c': 'melon'}
>>> del dict['c']
>>> dict
{'a': 'orange', 'b': 'banana'}

 


๋”•์…”๋„ˆ๋ฆฌ์™€ for๋ฌธ

 

for๋ฌธ์„ ํ†ตํ•ด key๊ฐ’๊ณผ value๊ฐ’์„ ๋‚˜์—ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ธฐ๋ณธ์ ์œผ๋กœ for๋ฌธ์— ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ๋„ฃ์œผ๋ฉด ํ‚ค(key)๊ฐ€ ๋‚˜์—ด๋ฉ๋‹ˆ๋‹ค.

 

>>> dict
{'a': 'orange', 'b': 'banana', 'c': 'melon'}
>>> for i in dict:
	print(i)
a
b
c

 

๊ฐ’(value) ์„ ๋‚˜์—ดํ•˜๋ ค๋ฉด values()ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

>>> dict
{'a': 'orange', 'b': 'banana', 'c': 'melon'}
>>> for i in dict.values():
	print(i)
orange
banana
melon
>>> 

 

ํ‚ค(key)์™€ ๊ฐ’(value)๋ฅผ ๋™์‹œ์— ๋‚˜์—ดํ•˜๋ ค๋ฉด items()ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

ํ‚ค(key)์™€ ๊ฐ’(value)๋ฅผ ๋™์‹œ์— ๊ฐ€์ ธ์˜ค๊ธฐ ๋•Œ๋ฌธ์— for๋ฌธ์— ๋ณ€์ˆ˜ 2๊ฐœ๋ฅผ ๋Œ€์ž…ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

 

>>> dict
{'a': 'orange', 'b': 'banana', 'c': 'melon'}
>>> for key, val in dict.items():
	print("{} : {},".format(key,val))
	
a : orange,
b : banana,
c : melon,

 


๊นŠ์€ ๋ณต์‚ฌ

 

๋”•์…”๋„ˆ๋ฆฌ๋Š” ๋“ฑํ˜ธ(=)์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋ฉด ์–‡์€ ๋ณต์‚ฌ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

 

>>> dict1
{'a': 'orange', 'b': 'banana'}
>>> dict2 = dict1
>>> dict2
{'a': 'orange', 'b': 'banana'}
>>> del dict2['a']
>>> dict2
{'b': 'banana'}
>>> dict1
{'b': 'banana'}

 

๊นŠ์€ ๋ณต์‚ฌ๋ฅผ ํ•˜๋ ค๋ฉด copy ๋ชจ๋“ˆ์˜ deepcopy() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

 

>>> import copy
>>> dict1
{'b': 'banana', 'a': 'orange'}
>>> dict2 = copy.deepcopy(dict1)
>>> dict2
{'b': 'banana', 'a': 'orange'}
>>> del dict2['b']
>>> dict2
{'a': 'orange'}
>>> dict1
{'b': 'banana', 'a': 'orange'}