파이썬 λ”•μ…”λ„ˆλ¦¬(Dictionary)의 λͺ¨λ“  것

2023. 12. 4. 08:32Β·ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄/Python

 

 

λ”•μ…”λ„ˆλ¦¬(Dictionary)

파이썬 λ”•μ…”λ„ˆλ¦¬λŠ” Key, Value ν•œμŒμœΌλ‘œ 이루어진 ν•΄μ‹œ μ•Œκ³ λ¦¬μ¦˜ μ»¨ν…Œμ΄λ„ˆμž…λ‹ˆλ‹€. 리슀트, νŠœν”Œκ³ΌλŠ” λ‹€λ₯΄κ²Œ λ°μ΄ν„°μ˜ μˆœμ„œλŠ” μ€‘μš”ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. νŠΉμ • Keyλ₯Ό 톡해 Valueλ₯Ό κ°€μ Έμ˜€λŠ” μ—°κ΄€ μ»¨ν…Œμ΄λ„ˆλΌλŠ” μ μž…λ‹ˆλ‹€. 리슀트, νŠœν”Œμ€ μ‹œν€€μŠ€ μ»¨ν…Œμ΄λ„ˆλΌκ³  ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

파이썬 λ”•μ…”λ„ˆλ¦¬λŠ” ν•΄μ‹œν…Œμ΄λΈ”(Hash Table)둜 κ΅¬μ„±λ˜μ–΄ 있기 λ•Œλ¬Έμ— λ°μ΄ν„°μ˜ 검색이 맀우 λΉ λ₯Έ νŽΈμž…λ‹ˆλ‹€. μ—¬κΈ°μ„œ μ€‘μš”ν•œ νŠΉμ§•μ€ Key의 κ³ μœ μ„±μž…λ‹ˆλ‹€. KeyλŠ” 쀑볡을 ν—ˆμš©ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ Key에 νŠœν”Œμ€ μ‚¬μš© κ°€λŠ₯ν•˜μ§€λ§Œ(immutable), λ¦¬μŠ€νŠΈλŠ” λΆˆκ°€λŠ₯ν•©λ‹ˆλ‹€(mutable).

 

κΈ°λ³Έ

dic = {'name' : 'seoarang', 'phone':'1313414', 'birth': '0819'}
dic['name']    # 'seorang' -> value λ°˜ν™˜
dic['sex'] = 'male'    # μš”μ†Œ μΆ”κ°€
del dic['phone']    # μš”μ†Œ μ‚­μ œ

 

ν•¨μˆ˜

  1. Key만 뽑아내기(keys)
>>>> a = {'name' : 'seoarang', 'phone':'1313414', 'birth': '0819'}
>>>> a.keys()    
dict_keys(['name', 'phone', 'birth']   # dict_keys 객체 λ°˜ν™˜

>>>> list(a.keys())    
['name', 'phone', 'birth']    # 리슀트둜 λ³€ν™˜

>>>> for k in a.keys():
				print(k)

 

2. Value 리슀트 λ§Œλ“€κΈ°(values)

>>>> a = {'name' : 'seoarang', 'phone':'1313414', 'birth': '0819'}
>>>> a.values()
dict_values(['seoarang', '1313414', '0819']    # dict_values 객체 λ°˜ν™˜

 

3. Key, Value 쌍 μ–»κΈ°(items)

>>>> a = {'name' : 'seoarang', 'phone':'1313414', 'birth': '0819'}
>>>> a.items()
dict_items([('name', 'seoarang'), ('phone', '1313414'), ('birth', '0819')]) # dict_items 객체 λ°˜ν™˜

>>>> for key, val in a.items():
				print(f"key : {key}, value : {value}")

 

4. Key둜 Value μ–»κΈ°(get)

>>>> a = {'name' : 'seoarang', 'phone':'1313414', 'birth': '0819'}
>>>> a.get('name')
'seoarang'

>>>> a.get('age')
None    

>>>> a['age']
KeyError: 'nokey'   # μ—†λŠ” ν‚€λ₯Ό μ‘°νšŒν•  λ•Œ get방식은 None을 λ°˜ν™˜, a['sex']λŠ” Key 였λ₯˜ λ°œμƒ!

 

5. λ”•μ…”λ„ˆλ¦¬ λΉ„μš°κΈ°(clear)

>>>> a = {'name' : 'seoarang', 'phone':'1313414', 'birth': '0819'}
>>>> a.clear()
>>>> a
{}

 

6. Key 체크 ν•˜κΈ°(in)

>>>> a = {'name' : 'seoarang', 'phone':'1313414', 'birth': '0819'}
>>>> 'name' in a
True

>>>> 'age'
False

 

7. λ”•μ…”λ„ˆλ¦¬ 볡사(dict, copy)

>>>> a = {'name' : 'seoarang', 'phone':'1313414', 'birth': '0819'}
>>>> b = a
>>>> a['name'] = 'david'
>>>> b
{'name' : 'david', 'phone':'1313414', 'birth': '0819'}   # dict1 = dict2의 경우 두 λ³€μˆ˜μ˜ λ©”λͺ¨λ¦¬ μ£Όμ†Œκ°€ 동일함

>>>> a = {'name' : 'seoarang', 'phone':'1313414', 'birth': '0819'}
>>>> c = dict(a)
>>>> a['name'] = 'david'
{'name' : 'seoarang', 'phone':'1313414', 'birth': '0819'}   # dict(a)의 경우 aκ°€ λ³΅μ‚¬λ˜κΈ° λ•Œλ¬Έμ— μ„œλ‘œ λ‹€λ₯Έ λ©”λͺ¨λ¦¬ μ£Όμ†Œ

>>>> a = {'name' : 'seoarang', 'phone':'1313414', 'birth': '0819'}
>>>> d = a.copy()
>>>> a['name'] = 'david'
{'name' : 'seoarang', 'phone':'1313414', 'birth': '0819'}   # a.copy()의 경우 aκ°€ λ³΅μ‚¬λ˜κΈ° λ•Œλ¬Έμ— μ„œλ‘œ λ‹€λ₯Έ λ©”λͺ¨λ¦¬ μ£Όμ†Œ

 

8. μ΅œλŒ€κ°’, μ΅œμ†Œκ°’, ν•©(max, min, sum)

# Keyκ°’ κΈ°μ€€μœΌλ‘œ μ΅œλŒ€κ°’, μ΅œμ†Œκ°’, ν•© λ°˜ν™˜

>>>> a = {1 :'a', 2 : 'b', 3 : 'c'}
>>>> max(a)
3

>>> min(a)
1

>>>> sum(a)
6

>>>> a = {'a' : 1, 'b' : 2, 'c' : 3}
>>>> max(a)
'c'

>>> min(a)
'a'

>>>> sum(a)
TypeError : unsupported operand type(s) for +: 'int' and 'str'

 

 

μ°Έκ³ : 점프 투 파이썬
μ €μž‘μžν‘œμ‹œ (μƒˆμ°½μ—΄λ¦Ό)

'ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄ > Python' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

파이썬 λͺ¨λ“ˆκ³Ό νŒ¨ν‚€μ§€μ˜ λͺ¨λ“  것  (1) 2023.12.09
파이썬 μž…μΆœλ ₯(ν‘œμ€€, 파일 λ“±)의 λͺ¨λ“  것  (2) 2023.12.05
파이썬 νŠœν”Œμ˜ λͺ¨λ“  것  (1) 2023.12.03
파이썬 리슀트(list)의 λͺ¨λ“  것  (1) 2023.12.02
파이썬 λ¬Έμžμ—΄(string)의 λͺ¨λ“  것  (1) 2023.12.01
'ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄/Python' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • 파이썬 λͺ¨λ“ˆκ³Ό νŒ¨ν‚€μ§€μ˜ λͺ¨λ“  것
  • 파이썬 μž…μΆœλ ₯(ν‘œμ€€, 파일 λ“±)의 λͺ¨λ“  것
  • 파이썬 νŠœν”Œμ˜ λͺ¨λ“  것
  • 파이썬 리슀트(list)의 λͺ¨λ“  것
μ„œμ•„λž‘πŸ˜ƒ
μ„œμ•„λž‘πŸ˜ƒ
Just Do ItπŸ’ͺ
  • μ„œμ•„λž‘πŸ˜ƒ
    G-Stack
    μ„œμ•„λž‘πŸ˜ƒ
  • 전체
    였늘
    μ–΄μ œ
    • 전체보기 (144)
      • ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄ (78)
        • C++ 기초 (28)
        • C++ μ‘μš© (18)
        • Python (18)
        • JavaScript & NodeJS (0)
        • Go (12)
        • React & NextJS (2)
        • Java (0)
      • AI (2)
      • 컴퓨터 ꡬ쑰 & 운영체제 (31)
      • μ•Œκ³ λ¦¬μ¦˜ (12)
      • λ°μ΄ν„°λ² μ΄μŠ€ (5)
      • λ„€νŠΈμ›Œν¬ (3)
      • λ””μžμΈνŒ¨ν„΄ (5)
      • μ„œλΉ„μŠ€ & 툴 (7)
      • νŠΈλ Œλ“œ&이슈 (1)
  • λΈ”λ‘œκ·Έ 메뉴

    • ν™ˆ
    • νƒœκ·Έ
    • λ°©λͺ…둝
  • 링크

  • 곡지사항

    • GμŠ€νƒμ˜ 기술 λΈ”λ‘œκ·Έ
  • 인기 κΈ€

  • νƒœκ·Έ

    go
    fork
    μŠ€νƒ
    반볡문
    init
    cpu
    쑰건문
    νŒ¨ν‚€μ§€
    ν•¨μˆ˜
    νŒŒμΌμž…μΆœλ ₯
    ν•˜λ“œλ””μŠ€ν¬
    Thread
    STD
    포인터
    component
    c++
    λ©”λͺ¨λ¦¬
    c
    RAM
    μ•Œκ³ λ¦¬μ¦˜
    컴퓨터
    λ””μžμΈνŒ¨ν„΄
    가상메λͺ¨λ¦¬
    pointer
    λ³€μˆ˜
    λ°°μ—΄
    상속
    λ°μ΄ν„°λ² μ΄μŠ€
    파이썬
    μž¬κ·€
  • 졜근 λŒ“κΈ€

  • 졜근 κΈ€

  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.6
μ„œμ•„λž‘πŸ˜ƒ
파이썬 λ”•μ…”λ„ˆλ¦¬(Dictionary)의 λͺ¨λ“  것
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”