[Python] ๋ฆฌ์คํธ, ๋์ ๋๋ฆฌ ๋ค๋ฃจ๊ธฐ2 - ๋์ ๋๋ฆฌ, ๋์ ๋๋ฆฌ ํจ์
๐ถ key-value ์ถ๊ฐํ๊ธฐ : setdefault(), update()
๐ถsetdafult()
๋์ ๋๋ฆฌ.setdefault( key, value )
- key๊ฐ๋ง ๋ฃ๊ธฐ
dict_uni.setdefault('c')
- key, value๊ฐ ๋ชจ๋ ๋ฃ๊ธฐ
dict_uni.setdefault('e', 101)
setdefault()๋ฅผ ํ์ฉํ์ฌ key, value ๋ชจ๋ ๋ฃ๋๋ค.
๐ถupdate()
๋์ ๋๋ฆฌ.update( iterable )
์ถ๊ฐ, ์์ ์ด ๊ฐ๋ฅํ update() ํจ์๋ค.
dict_uni.update(f=102)
key, value ๋ฅผ ๋ฐ๋ก ์ถ๊ฐํ ์ ์๋ค.
Q. setdefault() ํจ์์ update() ํจ์์ ์ฐจ์ด๊ฐ ๋ฌด์์ผ๊น?
setdefault() ํจ์์ key์ value๋ฅผ ๋ชจ๋ ๋ฃ์ ๊ฒฝ์ฐ, key๊ฐ ๋์
๋๋ฆฌ์ ์ด๋ฏธ ์กด์ฌํ๋ค๋ฉด setdefault() ํจ์๋ ๋ฐ์ดํฐ์ ์ํฅ์ ์ฃผ์ง ๋ชปํ๋ค. (setdefault() ํจ์์ ์
๋ ฅ๋ value ๊ฐ ๋ฌด์)
๋ฐ๋ฉด, update() ํจ์๋ ๊ธฐ์กด์ value ๊ฐ๊ณผ ์๊ด์์ด ๋์
๋๋ฆฌ์ ๋ฐ์ดํฐ๋ฅผ ์
๋ฐ์ดํธํ๋ค.
๐ถ key-value ์ญ์ ํ๊ธฐ : pop(), popitem()
๐ถ pop()
๋ง์ง๋ง ์์๋ฅผ ์ถ๋ ฅํ๊ณ ๊ทธ ์ดํ์ ๋ง์ง๋ง ์์๋ฅผ ์ญ์
๋ฆฌ์คํธ์์๋ pop() ํํ๋ก ์ฌ์ฉํ์ง๋ง
์์๊ฐ ์๊ด์๋ ๋์ ๋๋ฆฌ์์๋ pop()ํจ์ ์์ ์ธ์๋ฅผ ๋ฃ์ง ์์ผ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
๋ฐ๋ผ์ ๋์ ๋๋ฆฌ์์๋ ๋ฐ๋์ key๋ฅผ ๋ฃ์ด์ฃผ์ด์ผ ํ๋ค.
dict_uni.pop('g')
# dict_uni ๊ฐ ๋์
๋๋ฆฌ๋ก ๊ฐ์
nums = list(range(1, 11))
result = 0
for i in range(10):
result += nums.pop() # list์ด๋ฏ๋ก pop() ์์ key์ง์ ํ์ ์๋
print(result)
55
๐ถ popitem()
๋ฆฌ์คํธ์์ pop()์ฒ๋ผ ๋์ ๋๋ฆฌ์์ ํน์ key๋ฅผ ์ง์ ํ์ง ์์๋ ๋ง์ง๋ง value๋ง ์ถ๋ ฅํด ์ค๋ค.
๐ถ ๋์ ๋๋ฆฌ ์์ฑ : fromkeys()
age_li = [60, 28, 30, 34, 66, 11]
pereson_list = dict.fromkeys(age_li)
pereson_list
{60: None, 28: None, 30: None, 34: None, 66: None, 11: None}
fromkeys()์ key์ ํด๋นํ๋ ๋ฆฌ์คํธ๋ฅผ ๋ฃ์ด์ฃผ๋ฉด value์๋ None์ด ์๋์ผ๋ก ๋ค์ด๊ฐ๋ค.
age_li= [60, 28, 30, 34, 66, 11]
person_dict= dict.fromkeys( age_li , 'kor')
person_dict
{60: 'kor', 28: 'kor', 30: 'kor', 34: 'kor', 66: 'kor', 11: 'kor'}
value๋ฅผ ๋ฐ๋ก ๋ฃ์ด์ค ์๋ ์๋ค.
in / not in
๋ฆฌ์คํธ์ ๋์ ๋๋ฆฌ ๊ณตํต ์์ฝ์ด
in / not in ์ ๋ฆฌํด๊ฐ์ boolํํ๋ก ์ฆ, True ๋๋ False๋ก ๋ฆฌํด
value ๊ฐ์ ํ์ธ ๋ถ๊ฐ๋ฅํ๋ฏ๋ก values() ํจ์๋ฅผ ์ฌ์ฉ
dict_uni = {'a': 97, 'b':98, 'c':99, 'd':100}
'a' in dict_uni
# 100 in dict_uni
100 in dict_uni.values()
