🐹 μ»¬λ ‰μ…˜ νƒ€μž… - λ”•μ…”λ„ˆλ¦¬

λ―Όλ‹¬νŒ½μ΄μš°μœ Β·2024λ…„ 5μ›” 12일

🐹 파이썬 기초

λͺ©λ‘ 보기
8/19
post-thumbnail

μ»¬λ ‰μ…˜ νƒ€μž…μ˜ λ§ˆμ§€λ§‰ μžλ£Œν˜• λ”•μ…”λ„ˆλ¦¬(dictionary)에 λŒ€ν•΄ μ•Œμ•„λ³΄μž.

πŸ’‘ 1. λ”•μ…”λ„ˆλ¦¬

파이썬의 λ”•μ…”λ„ˆλ¦¬λŠ” ν‚€-κ°’ μŒμ„ μ €μž₯ν•˜λŠ” μˆœμ„œκ°€ 없도 λ³€κ²½κ°€λŠ₯ν•œ(mutable) μ»¬λ ‰μ…˜μ΄λ‹€. ν‚€λŠ” μ„ΈνŠΈλ‘œ 이루어져 있기 λ•Œλ¬Έμ— 쀑볡될 수 μ—†μ§€λ§Œ, 값은 쀑볡이 κ°€λŠ₯ν•˜λ‹€.

dict1 = {}
print(dict1) 
print(type(dict1)) 
> {}
> <class 'dict'>
dict2 = {1:'유민콩', 2:'μ •ν˜„μ½©', 3:'μˆ˜ν˜„μ½©', 4:'유빈콩'}
print(dict2)
> {1: '유민콩', 2: 'μ •ν˜„μ½©', 3: 'μˆ˜ν˜„μ½©', 4: '유빈콩'}

λ”•μ…”λ„ˆλ¦¬[ν‚€]의 ν˜•νƒœλ‘œ ν•΄λ‹Ή ν‚€μ˜ 값을 μ•Œ 수 μžˆλ‹€.

print(dict2[2])
print(dict2[4]) 
> μ •ν˜„μ½©
> 유빈콩
dict3 = {'no':1, 'userid':'yoomin', 'name':'유민콩', 'hp':'010-1234-5678'}
print(dict3) 
print(dict3['userid']) 
print(dict3['name'])

> {'no': 1, 'userid': 'yoomin', 'name': '유민콩', 'hp': '010-1234-5678'}
> yoomin
> 유민콩

λ”•μ…”λ„ˆλ¦¬[μƒˆλ‘œμš΄ ν‚€] = μƒˆλ‘œμš΄ κ°’ 의 ν˜•νƒœλ‘œ 값을 μƒˆλ‘œ μΆ”κ°€ν•  수 μžˆλ‹€. []μ•ˆμ— 기쑴의 ν‚€λ₯Ό λ„£μœΌλ©΄ ν‚€μ˜ 값을 λ³€κ²½ν•  수 μžˆλ‹€.

dict4 = {1:'유민콩'}
dict4[100] = '유빈콩'
dict4[50] = 'μ •ν˜„μ½©'
dict4[100] = 'μˆ˜ν˜„μ½©' 
print(dict4) 
> {1: '유민콩', 100: 'μˆ˜ν˜„μ½©', 50: 'μ •ν˜„μ½©'}

del ν•¨μˆ˜λ₯Ό 톡해 ν‚€λ₯Ό μ œκ±°ν•  수 μžˆλ‹€.

del dict4[100]
print(dict4) 
> {1: '유민콩', 50: 'μ •ν˜„μ½©'}

πŸ’‘ 2. ν‚€, κ°’μ˜ μ œμ•½

λ”•μ…”λ„ˆλ¦¬μ˜ ν‚€λŠ” λ³€κ²½λΆˆκ°€λŠ₯ν•œ(immutable) νƒ€μž…μ΄μ—¬μ•Ό ν•œλ‹€. 예λ₯Ό λ“€μ–΄ λ¬Έμžμ—΄, μ •μˆ˜, νŠœν”Œμ€ λ”•μ…”λ„ˆλ¦¬μ˜ ν‚€λ‘œ μ‚¬μš©ν•  수 μžˆμ§€λ§Œ, λ¦¬μŠ€νŠΈλŠ” λ”•μ…”λ„ˆλ¦¬μ˜ ν‚€λ‘œ μ‚¬μš©ν•  수 μ—†λ‹€. ν•˜μ§€λ§Œ λ”•μ…”λ„ˆλ¦¬μ˜ 값은 μ–΄λ–€ νƒ€μž…μ΄λ“  상관없닀.

dict3 = {'no':1, 'userid':'yoomin', 'name':'유민콩', 'hp':'010-1234-5678'}
print(dict3)

dict3['no'] = 10 # κ°’ λ³€κ²½
print(dict3)

dict3['gender'] = 'f' # ν‚€-κ°’ μΆ”κ°€
print(dict3)

dict3['score'] = [90, 100, 60] # 값을 리슀트 ν˜•νƒœλ‘œλ„ μ €μž₯ κ°€λŠ₯
print(dict3)

# dict3[[1, 2, 3]] = ['ν•˜λ‚˜', 'λ‘˜', 'μ…‹']
# TypeError: unhashable type: 'list'
# ν‚€μ—λŠ” 리슀트 μ‚¬μš© λΆˆκ°€

dict3[(1, 2, 3)] = ['ν•˜λ‚˜', 'λ‘˜', 'μ…‹'] # 킀에 νŠœν”Œμ€ μ‚¬μš© κ°€λŠ₯
print(dict3)

dict3['fruit'] = {'사과':'🍎', 'λ”ΈκΈ°':'πŸ“', 'μˆ˜λ°•':'πŸ‰'} # λ”•μ…”λ„ˆλ¦¬μ— λ”•μ…”λ„ˆλ¦¬ μ €μž₯ κ°€λŠ₯
print(dict3)
> {'no': 1, 'userid': 'yoomin', 'name': '유민콩', 'hp': '010-1234-5678'}
> {'no': 10, 'userid': 'yoomin', 'name': '유민콩', 'hp': '010-1234-5678'}
> {'no': 10, 'userid': 'yoomin', 'name': '유민콩', 'hp': '010-1234-5678', 'gender': 'f'}
> {'no': 10, 'userid': ' yoomin', 'name': '유민콩', 'hp': '010-1234-5678', 'gender': 'f', 'score': [90, 100, 60]}
> {'no': 10, 'userid': 'yoomin', 'name': '유민콩', 'hp': '010-1234-5678', 'gender': 'f', 'score': [90, 100, 60], (1, 2, 3): ['ν•˜λ‚˜', 'λ‘˜', 'μ…‹']}
> {'no': 10, 'userid': 'yoomin', 'name': '유민콩', 'hp': '010-1234-5678', 'gender': 'f', 'score': [90, 100, 60], (1, 2, 3): ['ν•˜λ‚˜', 'λ‘˜', 'μ…‹'], 'fruit': > {'사과': '🍎', 'λ”ΈκΈ°': 'πŸ“', 'μˆ˜λ°•': 'πŸ‰'}}

πŸ’‘ 3. λ”•μ…”λ„ˆλ¦¬μ˜ λ©”μ„œλ“œ

dict3 = {'no':1, 'userid':'yoomin', 'name':'유민콩', 'hp':'010-1234-5678'}
print(len(dict3)) # ν‚€-값이 λͺ‡ 개 λ“€μ–΄μžˆλŠ”μ§€
> 4

3-1. keys()

λ”•μ…”λ„ˆλ¦¬μ˜ λͺ¨λ“  ν‚€λ₯Ό λ°˜ν™˜ν•œλ‹€.

print(dict3.keys())
> dict_keys(['no', 'userid', 'name', 'hp'])

3-2. values()

λ”•μ…”λ„ˆλ¦¬μ˜ λͺ¨λ“  값을 λ°˜ν™˜ν•œλ‹€.

print(dict3.values())
> dict_values([1, 'yoomin', '유민콩', '010-1234-5678'])

3-3. items

λ”•μ…”λ„ˆλ¦¬μ˜ λͺ¨λ“  ν‚€-값을 νŠœν”Œλ‘œ λ°˜ν™˜ν•œλ‹€

print(dict3.items())
> dict_items([('no', 1), ('userid', 'yoomin'), ('name', '유민콩'), ('hp', '010-1234-5678')])

3-4. gets

νŠΉμ • 킀에 λŒ€ν•œ 값을 λ°˜ν™˜ν•œλ‹€, λ§Œμ•½ ν‚€κ°€ λ”•μ…”λ„ˆλ¦¬μ— μ—†μœΌλ©΄ Noneλ₯Ό λ°˜ν™˜ν•œλ‹€.

dict3 = {'no':1, 'userid':'yoomin', 'name':'유민콩', 'hp':'010-1234-5678'}
print(dict3['userid'])
> yoomin

# print(dict3['gender'])
# KeyError: 'gender'
# μ—†λŠ” ν‚€ λΆ€λ₯΄λ©΄ 였λ₯˜

print(dict3.get('userid'))
print(dict3.get('gender')) # None
print(dict3.get('age', 'λ‚˜μ΄λ₯Ό μ•Œ 수 μ—†μŒ')) # None을 λŒ€μ‹ ν•΄μ„œ 좜λ ₯ν•  λ¬Έμž₯
print(dict3.get('userid', '아이디λ₯Ό μ•Œ 수 μ—†μŒ'))
> yoomin
> None
> λ‚˜μ΄λ₯Ό μ•Œ 수 μ—†μŒ
> yoomin

3-5. pop()

νŠΉμ • 킀에 λŒ€ν•œ 값을 μ œκ±°ν•˜κ³  κ·Έ 값을 λ°˜ν™˜ν•œλ‹€. ν‚€κ°€ μ—†λ‹€λ©΄ μ—λŸ¬λ₯Ό λ°˜ν™˜ν•œλ‹€.

dict3 = {'no':1, 'userid':'yoomin', 'name':'유민콩', 'hp':'010-1234-5678'}

temp = dict3.pop('hp')
print(dict3)
print(temp)
> {'no': 1, 'userid': 'yoomin', 'name': '유민콩'}
> 010-1234-5678

in

λ”•μ…”λ„ˆλ¦¬μ— νŠΉμ • ν‚€κ°€ μžˆλŠ”μ§€ ν™•μΈν•œλ‹€. λ©”μ„œλ“œλŠ” μ•„λ‹ˆλ‹€.

dict3 = {'no':1, 'userid':'yoomin', 'name':'유민콩', 'hp':'010-1234-5678'}
print('hp' in dict3)
print('gender' in dict3)
> True
> False
profile
μ–΄λ–»κ²Œ ν–„μŠ€ν„°κ°€ 개발자

0개의 λŒ“κΈ€