λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
IT πŸ’»/Python

[Python] μžλ£Œν˜•_λ”•μ…”λ„ˆλ¦¬ κ°œλ… 및 ν•¨μˆ˜ ν™œμš©λ²•

by Daphne_Kim 2022. 3. 1.
SMALL
λ”•μ…”λ„ˆλ¦¬ κ°œλ…

λ”•μ…”λ„ˆλ¦¬λŠ” 말 κ·ΈλŒ€λ‘œ '사전'이며 파이썬의 λ”•μ…”λ„ˆλ¦¬λ„ 사전과 λΉ„μŠ·ν•˜κ²Œ κ΅¬μ„±λ˜μ–΄ μžˆλ‹€.

이렇듯 ν‘œμ œμ–΄μ™€ κ·Έ μ„€λͺ…μœΌλ‘œ 이루어진 것을 λ³Ό 수 μžˆλŠ”λ°
νŒŒμ΄μ¬μ—μ„œλŠ” Key와 Value값이 항상 쌍으둜 ꡬ성(즉, 킀에 λŒ€ν•œ 쀑볡이 ν—ˆμš©λ˜μ§€ μ•ŠλŠ”λ‹€)λ˜μ–΄ μžˆλ‹€. λ¦¬μŠ€νŠΈλ‚˜ νŠœν”Œκ³Ό λ‹€λ₯Έ 점이라면 이 λ‘˜μ€ 인덱슀λ₯Ό μ΄μš©ν•΄ ν•­λͺ©μ„ λ‹€λ€˜μ§€λ§Œ
λ”•μ…”λ„ˆλ¦¬λŠ” 인덱슀 λŒ€μ‹  ν‚€λ₯Ό μ΄μš©ν•΄ 값을 λ‹€λ£¬λ‹€λŠ” 것이닀.
κ·Έλž˜μ„œ Keyλ₯Ό μ•Œλ©΄ Value값을 μ‰½κ²Œ 찾을 수 μžˆλ‹€.


λ˜ν•œ λ¦¬μŠ€νŠΈλ‚˜ νŠœν”Œμ—μ„œ μΈλ±μŠ€λŠ” 0λΆ€ν„° μ‹œμž‘ν–ˆμ§€λ§Œ λ”•μ…”λ„ˆλ¦¬μ˜ ν‚€λŠ” μž„μ˜λ‘œ μ§€μ •ν•œ 숫자, λ¬Έμžμ—΄μ΄ 될 수 있으며 κ°’μ—λŠ” μ–΄λ–€ 데이터 νƒ€μž…μ„ μ‚¬μš©ν•΄λ„ 상관없닀. μ΄λ ‡κ²Œλ§Œ 보면 μ–΄λ €μšΈ 수 μžˆμ§€λ§Œ μ½”λ“œλ₯Ό μ‹€μ œλ‘œ μž‘μ„±ν•΄λ³΄λ©΄ μ΄ν•΄ν•˜λŠ” 데 더 도움이 λ˜λ‹ˆ μ‚΄νŽ΄λ³΄λ„λ‘ ν•˜μž!

λ”•μ…”λ„ˆλ¦¬ ν™œμš©λ²•_κ°’ κ°€μ Έμ˜€κΈ°

λ”•μ…”λ„ˆλ¦¬λŠ” μ€‘κ΄„ν˜Έ{ }λ₯Ό μ΄μš©ν•΄ 데이터λ₯Ό 감싸고, 콜둠: 을 μ΄μš©ν•΄ 킀와 값을 κ΅¬λΆ„ν•˜λ„λ‘ ν•œλ‹€.
사전 μžλ£Œν˜•μ—μ„œ 값을 κ°€μ Έμ˜€λŠ” 방법은 λŒ€ν‘œμ μœΌλ‘œ 2가지가 μžˆλŠ”λ° μ•„λž˜λŠ” 이λ₯Ό λ‹€μ–‘ν•œ 데이터 νƒ€μž…μ„ 톡해 λ‚˜νƒ€λ‚Έ μ˜ˆμ‹œμ΄λ‹€.

# 사전 μžλ£Œν˜•μ—μ„œ 값을 κ°€μ Έμ˜€λŠ” 방법1: ν‚€λ₯Ό 지정해 ν˜ΈμΆœν•˜κΈ° 

# ν‚€λŠ” 숫자, 값은 λ¬Έμžμ—΄μΈ 경우 
locker = {1:'Navida', 2:'Jarry', 3:'Karen'} #락컀 λ²ˆν˜Έκ°€ Key, 이름이 Value 
print(locker[3]) # Karen 

# 킀와 값이 μ „λΆ€ 숫자인 경우 
# ν•™μƒλ²ˆν˜Έ:성적 
score = {1:87, 3:90, 7:100} 
print(score[7]) # 100 

# ν‚€κ°€ λ¬Έμžμ—΄, 값은 리슀트인 경우 
data1 = {'dict_data1':[1,2,3,4], 'dict_data2':[3,6,2,7]} 
print(data1['dict_data1']) # [1, 2, 3, 4]

#λ‹€μ–‘ν•œ ν˜•νƒœμ˜ 값을 가진 λ”•μ…”λ„ˆλ¦¬ 
mix_dict = {1:10, 'dict_num':{4:20, 6:10}, 'dict_tuple':{'num1':[1,2,3], 'num2':[6,7,8]}, 'cafe':'컀피 ν•œ μž”μ˜ μ—¬μœ '} 
print(mix_dict) # {1: 10, 'dict_num': {4: 20, 6: 10}, 'dict_tuple': {'num1': [1, 2, 3], 'num2': [6, 7, 8]}, 'cafe': '컀피 ν•œ μž”μ˜ μ—¬μœ '} 
print(mix_dict['cafe']) # 컀피 ν•œ μž”μ˜ μ—¬μœ  
print(mix_dict['dict_tuple']) # {'num1': [1, 2, 3], 'num2': [6, 7, 8]}
# 사전 μžλ£Œν˜•μ—μ„œ 값을 κ°€μ Έμ˜€λŠ” 방법2: get ν•¨μˆ˜ μ‚¬μš©ν•˜κΈ° 
print(locker.get(3)) # Karen 
print(cabinet[5]) # ν•΄λ‹Ή ν‚€κ°€ μ—†μ–΄μ„œ 였λ₯˜κ°€ 남 
print(locker.get(5)) # 였λ₯˜ λŒ€μ‹  None 좜λ ₯ 
print(mix_dict.get('dict_num')) # {4: 20, 6: 10} 좜λ ₯
λ”•μ…”λ„ˆλ¦¬ ν™œμš©λ²•_μ‚­μ œ, μΆ”κ°€, λ³€κ²½ν•˜κΈ°

카페의 메뉴λ₯Ό μ˜ˆμ‹œλ‘œ λ“€μ–΄λ³΄μ•˜λ‹€. 

# λ”•μ…”λ„ˆλ¦¬ 생성
order = {'Americano':4500, 'Latte':5000, 'Juice':5500, 'Waffle':4000}
print(order) # {'Americano': 4500, 'Latte': 5000, 'Juice': 5500, 'Waffle': 4000}

#1. 데이터 λ³€κ²½
order['Americano'] = 4000 # 컀피 κ°’ λ³€κ²½
print(order) # {'Americano': 4000, 'Latte': 5000, 'Juice': 5500, 'Waffle': 4000}

#2. 데이터 μΆ”κ°€
order['Scone'] = 2500 # μƒˆ 메뉴 μΆ”κ°€
print(order) # {'Americano': 4000, 'Latte': 5000, 'Juice': 5500, 'Waffle': 4000, 'Scone': 2500}

#3. 데이터 μ‚­μ œ
del order['Waffle'] # 메뉴 μ‚­μ œ 
print(order) # {'Americano': 4000, 'Latte': 5000, 'Juice': 5500, 'Scone': 2500}
λ”•μ…”λ„ˆλ¦¬ ν™œμš©λ²•_λ©”μ„œλ“œ μ‚¬μš©ν•˜κΈ°
#λ”•μ…”λ„ˆλ¦¬ 생성
color_code = {'PinkBeige':'474C', 'lime':'386C', 'Yellow':'113C', 'Brown':'4625C'}
print(color_code) # {'PinkBeige': '474C', 'lime': '386C', 'Yellow': '113C', 'Brown': '4625C'}

#1. keys: ν‚€λ§Œ 좜λ ₯, ν‚€ 전체λ₯Ό 리슀트 ν˜•νƒœλ‘œ λ°˜ν™˜
print(color_code.keys()) # dict_keys(['PinkBeige', 'lime', 'Yellow', 'Brown'])
print(list(color_code.keys())) # ['PinkBeige', 'lime', 'Yellow', 'Brown']

#2. values: κ°’λ§Œ 좜λ ₯, κ°’ 전체λ₯Ό 리슀트 ν˜•νƒœλ‘œ λ°˜ν™˜
print(color_code.values()) # dict_values(['474C', '386C', '113C', '4625C'])
print(list(color_code.values())) # ['474C', '386C', '113C', '4625C']

#3. items: {ν‚€, κ°’}을 νŠœν”Œ ν˜•νƒœμ˜ (ν‚€, κ°’)으둜 λ°˜ν™˜
print(color_code.items()) # dict_items([('PinkBeige', '474C'), ('lime', '386C'), ('Yellow', '113C'), ('Brown', '4625C')])
print(list(color_code.items())) # [('PinkBeige', '474C'), ('lime', '386C'), ('Yellow', '113C'), ('Brown', '4625C')]

#4. update: 기쑴의 λ”•μ…”λ„ˆλ¦¬ 데이터에 μƒˆλ‘œμš΄ 데이터 μΆ”κ°€
color_code2 = {'RedOrange': '324C', 'Pink': '302C'}
color_code.update(color_code2)
print(color_code) 
# {'PinkBeige': '474C', 'lime': '386C', 'Yellow': '113C', 'Brown': '4625C', 'RedOrange': '324C', 'Pink': '302C'}

#5. cleear: λ”•μ…”λ„ˆλ¦¬μ˜ λͺ¨λ“  ν•­λͺ© μ‚­μ œ
color_code.clear()
print(color_code) # {}

μ΄λ ‡κ²Œ λ‹€μ–‘ν•œ λ°μ΄ν„°νƒ€μž…μ„ μ΄μš©ν•΄λ³΄μ•˜λ‹€. μ „λΆ€ μ•Œμ•„λ‘˜ ν•„μš”κ°€ μžˆμ§€λ§Œ κ·Έ μ€‘μ—μ„œλ„ λ¬Έμžμ—΄, 리슀트, λ”•μ…”λ„ˆλ¦¬λ₯Ό 데이터 처리 ν•  λ•Œ κ°€μž₯ 많이 μ‚¬μš©ν•˜λ‹ˆ κ΄€λ ¨ μ˜ˆμ œλ“€μ„ 많이 풀어보면 쒋을 것 κ°™λ‹€. 

SMALL