λμ λ리(dictionary)μ μ§ν©(set)μ νμ΄μ¬μμ μ¬μ©λλ 컬λ μ μλ£νμΌλ‘, κ°κ° ν€-κ° μκ³Ό κ³ μ ν κ°λ€μ λͺ¨μμ μ μ₯ν©λλ€. μ΄λ² κΈμμλ λμ λ리μ μ§ν©μ λν΄ μμλ³΄κ³ python 컬λ μ μλ£νμ λΉκ΅ν΄ λ³΄κ² μ΅λλ€.
β£ λͺ©μ°¨
μ¬λ¬ μμλ₯Ό λ΄μ μ μλ 컬λ μ
μλ£νμ mutable(κ°λ³)κ³Ό immutable(λΆλ³)μ νΉμ§μ κ°μ§κ³ μμ΅λλ€.
κ°λ³ μλ£νμ κ°μ μμ , μΆκ°, μμ ν μ μμΌλ©° λ°μ΄ν°λ₯Ό λμ μΌλ‘ μμ , κ΄λ¦¬νκΈ°μ μ μ©νλ©° λΆλ³ μλ£νμ κ°μ ν λ² μμ±ν νμλ λ³κ²½μ΄ λΆκ°λ₯νμ¬ λ°μ΄ν°μ λΆλ³μ±μ 보μ₯ν©λλ€.
μ§λ ν¬μ€ν
μμλ mutable ν μ±κ²©μ κ°μ§ listμ immutable ν tupleμ λν΄ μμ보μλλ°μ!
μ€λμ listμ κ°μ΄ mutableν μ±κ²©μ κ°μ§ λμ
λ리μ μΈνΈμ λν΄ μμλ³΄κ² μ΅λλ€π
1. dictionaryπ
리μ€νΈκ° 'μΈλ±μ€λ₯Ό κΈ°λ°μΌλ‘ κ°μ μ μ₯'νλ κ²μ΄λΌλ©΄ λμ
λ리λ 'ν€ κ°μ κΈ°λ°μΌλ‘ κ°μ μ μ₯'ν©λλ€.
λμ
λ리λ ν€μ κ°μ΄ ν μμΌλ‘ μ μ₯λμ΄ κ΄λ¦¬ν©λλ€.
len()μ μ¬μ©νλ©΄ ν μμ 1λ‘ μΉ΄μ΄νΈν©λλ€.
ν€ κ°μ μ€λ³΅μ΄ λ μ μμΌλ©°, κ°μ μ€λ³΅μ΄ κ°λ₯ν©λλ€.
βΆ dictionary μ μΈ
λμ
λ리λ μ€κ΄νΈ { }λ‘ μ μΈνλ©°, ν€ : κ° ννλ₯Ό μΌνλ‘ μ°κ²°ν΄μ λ§λλλ€.
λμ
λ리λͺ
= ν€ : κ°, ν€ : κ°,....}
dic = {}
dic1 = {'name': 'νκΈΈλ', 'birthday':'1212'}
print(dic) # {} -> λΉ λμ
λ리
print(dic1) # {'name': 'νκΈΈλ', 'birthday': '1212'}
βΆ dictionary μμμ μ κ·Ό
λμ
λ리 μ μΈ ν νΉμ ν€ κ°λ§ λ°λ‘ μΆλ ₯ν μλ μμ΅λλ€.
μμμ μ κ·Όν λλ 리μ€νΈμ²λΌ λμ
λ리 λ€μ λκ΄νΈ[ ]λ₯Ό μ
λ ₯νκ³ λ΄λΆ μΈλ±μ€μ²λΌ ν€λ₯Ό μ
λ ₯ν©λλ€.
λμ
λ리λͺ
[ν€]
dic = {'name': 'νκΈΈλ', 'birthday':'1212'} # λμ
λ리 μ μΈ
print(dic['name']) # κ° 'νκΈΈλ'μ΄ μΆλ ₯
a = dic['birthday'] # λ³μ aμ 1212 λ΄κΈ°
print(a) # κ° '1212'κ° μΆλ ₯
βΆ dictionary μΆκ°, μμ
λμ
λ리μ κ°μ μΆκ°ν λλ ν€λ₯Ό κΈ°λ°μΌλ‘ κ°μ μ
λ ₯νλ©΄ λ©λλ€.
λμ
λ리μ μλ‘μ΄ μλ£λ₯Ό μΆκ°νκ³ μ νλ€λ©΄ λ€μκ³Ό κ°μ΄ ν€λ₯Ό μ νκ³ κ°μ μ
λ ₯ν©λλ€.
λμ
λ리λͺ
[ν€] = μλ‘μ΄ κ°
dic = {'name': 'νκΈΈλ', 'birthday':'1212'}
dic['address'] = 'μμΈ' # ν΄λΉνλ ν€κ° μμΌλ©΄ μΆκ° λ¨
print(dic) # {'name': 'νκΈΈλ', 'birthday': '1212', 'address': 'μμΈ'}
νμ§λ§ λμ
λ리μ μ΄λ―Έ μ‘΄μ¬νκ³ μλ ν€λ₯Ό μ§μ νκ³ κ°μ λ£μΌλ©΄ κΈ°μ‘΄μ κ°μ΄ μλ‘μ΄ κ°μΌλ‘ μμ λ©λλ€.
dic = {'name': 'νκΈΈλ', 'birthday':'1212'}
dic['name'] = 'λΌμ΄μΈ'
print(dic) # {'name': 'λΌμ΄μΈ', 'birthday': '1212'} 'name'μ΄ 'λΌμ΄μΈ'μΌλ‘ μμ λ¨
βΆ dictionary μ κ±°
delν€μλλ₯Ό μ¬μ©νμ¬ λμ
λ리μ νΉμ ν€λ₯Ό μ§μ νλ©΄ ν΄λΉ μμκ° μ κ±°λ©λλ€. (ν€, κ°μ΄ ν μμΌλ‘ μμ )
del λμ
λ리λͺ
[ν€]
dic = {'name': 'νκΈΈλ', 'birthday':'1212','address':'μμΈ' }
del dic['address'] # addressμ ν΄λΉνλ ν€μ κ°μ μμ
print(dic) # {'name': 'νκΈΈλ', 'birthday': '1212'}
βΆ dictionary κ²μ
λμ
λ리μ μ‘΄μ¬νμ§ μλ ν€μ μ κ·Όνλ©΄ KeyErrorκ° λ°μν©λλ€.
κ·Έλμ μ‘΄μ¬νλ ν€μΈμ§, μ‘΄μ¬νμ§ μλ ν€μΈμ§ νμΈν μ μλ λ°©λ²μ΄ νμν©λλ€.
리μ€νΈμ λ§μ°¬κ°μ§λ‘ λμ
λ리 λν inν€μλλ₯Ό μ¬μ©ν©λλ€.
ν€ in λμ
λ리λͺ
: ν€ κ°μ΄ μμΌλ©΄ μ°Έ
dic = {'name': 'νκΈΈλ', 'birthday':'1212'}
print('name' in dic) # true
ν€μ κ°μ λͺ¨λ μ§μΈλλ 리μ€νΈμ λ§μ°¬κ°μ§λ‘ clearλ₯Ό μ¬μ©ν΄ μ€λλ€.
λμ
λ리λͺ
.clear()
dic = {'name': 'νκΈΈλ', 'birthday':'1212'}
dic.clear() # dic λͺ¨λ ν€, κ° μμ
print(dic) # {}
βΆ dictionary ν€, κ° λΆλ¦¬
λμ
λ리μ ν€, κ°μ΄ ν μμ ννκ° μλ ν€λ§, κ°λ§ λ°λ‘ λΆλ¦¬νμ¬ λ¦¬μ€νΈλ‘ μΆλ ₯ν μ λ μμ΅λλ€.
list(λμ
λ리λͺ
.keys()) → key리μ€νΈ λ§λ€κΈ°
dic = {'name': 'νκΈΈλ', 'birthday':'1212'}
print(dic.keys()) # dict_keys(['name', 'birthday']) # ν€ λΆλΆλ§ λ°λ‘ λͺ¨μ κ²
λμ
λ리λͺ
.valuse() → κ°(value) 리μ€νΈ λ§λ€κΈ°
dic = {'name': 'νκΈΈλ', 'birthday':'1212'}
print(dic.values()) # dict_values(['νκΈΈλ', '1212']) # κ° λΆλΆλ§ λ°λ‘ λͺ¨μ κ²
λ§μ½ ν€μ κ°μ λμμ μ»κ³ μΆλ€λ©΄ itemsν¨μλ₯Ό μ΄μ©νλ©΄ λ©λλ€.
itemsν¨μλ ν€μ κ° μμ tupleλ‘ λ°νν©λλ€.
dic = {'name': 'νκΈΈλ', 'birthday':'1212'}
print(dic.items()) # dict_items([('name', 'νκΈΈλ'), ('birthday', '1212')])
2. setπ
μΈνΈ(μ§ν©)λ λμ
λ리μ λ§μ°¬κ°μ§λ‘ μμ , μΆκ°, μμ κ° κ°λ₯ν(mutable) μλ£κ΅¬μ‘°μ
λλ€.
μΈνΈλ μμκ° μλ μλ£κ΅¬μ‘°μ΄λ―λ‘ μΈλ±μ±, μ¬λΌμ΄μ±μ΄ λΆκ°ν©λλ€.
λν μ€λ³΅λ κ°μ νμ©νμ§ μκΈ°μ μ€λ³΅ μ κ±°μ©μΌλ‘ μ¬μ©ν μ μμ΅λλ€.
βΆ set μ μΈ
μ€κ΄νΈ{ }λ₯Ό μ¬μ©νμ¬ μ μνλ©° μΌνλ‘ μμλ₯Ό ꡬλΆν©λλ€.
setμ μ€λ³΅μ νμ©νμ§ μκΈ°μ λμΌν κ°μ ν¬ν¨νμ¬λ νλμ κ°λ§ μ μ§λ©λλ€.
setλͺ
= {κ° 1, κ° 2, κ° 3}
# κΈ°λ³Έ νν
set = {1, 2, 3}
print(set) # {1, 2, 3}
# λΉset
set2 = set()
print(set2) # set()
# μ€λ³΅κ°μ μΆλ ₯νμ§ μμ
set3 = {1, 2, 3, 3, 3, 4, 5}
print(set3) # {1, 2, 3, 4, 5}
βΆ set μΆκ°
μΈνΈμ νλͺ©μ μΆκ°ν λλ add, updatae λ©μλλ₯Ό μ¬μ©νλ©΄ λ©λλ€.
addλ νλμ κ°μ΄ μΆκ°λλ©° μΆκ°λ κ°μ κΈ°μ‘΄ μμμ 맨 λ€μ μμ±λ©λλ€.
setλͺ
.add(κ°)
s1 = {1, 2, 3}
s1.add(4) # 무쑰건 맨 λ€μ μΆκ° (μμκ° μκΈ° λλ¬Έμ)
print(s1) # {1, 2, 3, 4}
setλͺ
.update([κ° 1, κ° 2, κ° 3])
s1 = {1, 2, 3}
s1.update([4, 5, 6])
print(s1) # {1, 2, 3, 4, 5, 6}
βΆ set μ κ±°
setμ κ°μ μ κ±°ν λλ removeλ₯Ό μ¬μ©νλ©΄ λ©λλ€.
setλ μμκ° μλ μλ£κ΅¬μ‘°λ‘ μΈλ±μ±, μ¬λΌμ΄μ±μ΄ λΆκ°λ₯νλ―λ‘ μ§μΈ κ°μ μ§μ κΈ°μ
νμ¬ νΉμ κ°μ μ κ±°ν©λλ€.
setλͺ
.remove(κ°)
s1 = {1, 2, 3, 4}
s1.remove(3) # κ° 3μ μ§μλΌ
print(s1) # {1, 2, 4}
3. 컬λ μ μλ£ν λΉκ΅π
μ§κΈκΉμ§ list, tuple, dictionary, setμ λν΄ μμ보μλλ°μ!
μ΄λ²μλ 컬λ μ
μλ£νλ€μ μ°¨μ΄μ μ νλ² μ΄ν΄λ³΄κ² μ΅λλ€π
list | tuple | dictionary | set |
listλͺ = [ κ°1, κ°2] | dataTuple1 = ( 1,2,3 ) | dictλͺ
= { ν€ : κ°} |
setλͺ
= { κ°1, κ°2} setλͺ = set ( ) |
μμκ° μλ μλ£ν (μνμ€ μλ£ν) | μμκ° μλ μλ£ν | ||
mutable(κ°λ³) | immutable(λΆλ³) | mutable(κ°λ³) | mutable(κ°λ³) |
μ€λ³΅ κ° νμ© | μ€λ³΅ κ° νμ© | μ€λ³΅ κ° λΆκ° | ν€ μ€λ³΅ λΆκ° κ° μ€λ³΅ κ°λ₯ |
4. ν΅μ¬λ΄μ©π