python 리μ€νΈμ ννμ 컬λ μ μλ£νμΌλ‘, κ°κ° λ³κ²½ κ°λ₯ν(mutable)κ³Ό λ³κ²½ λΆκ°λ₯ν(immutable) μνμ€λ₯Ό λνλ λλ€. μ΄λ€μ μ°¨μ΄μ κ°κ°μ νΉμ§μ μμΈν μ΄ν΄λ³΄λ©° λΉκ΅ν΄λ³΄κ² μ΅λλ€.
β£ λͺ©μ°¨
μ§λ μκ°μλ κΈ°λ³Έ μλ£νμ λν΄ μμ보μλλ°μ! κΈ°λ³Έ μλ£νμ μ§λ ν¬μ€ν
μ λ΄μ©μ μ°Έκ³ ν΄ μ£ΌμΈμπ
1. 컬λ μ μλ£νμ΄λ β
컬λ μ μλ£νμ λ°μ΄ν°λ₯Ό κ·Έλ£Ήννκ³ μ‘°μνκΈ° μν΄ μ¬μ©λλ λ°μ΄ν°μ ꡬ쑰λ₯Ό μλ―Έν©λλ€. λ°μ΄ν°μ μΆκ°, μ κ±°, μμ , κ²μ λ±μ μμ μ μννμ¬ ν¨μ¨μ μ΄κ³ μ μ§λ³΄μκ° μ¬μ΄ μ½λλ₯Ό μμ±ν μ μμ΅λλ€. μ£Όλ‘ μ¬μ©λλ 컬λ μ μ μλ£νμλ list, tuple, set, dictionaryμ΄ μμ΅λλ€.
2. 리μ€νΈ(list) π
listλ λ³μλ₯Ό μ¬λ¬ λ² μ μΈνμ§ μκ³ μ¬λ¬ μΉΈμ κ°μ§ list ν λ²λ§ μ μΈνκΈ° μν΄μ μ¬μ©λ©λλ€. λ³μλ₯Ό μ μΈνλ©΄, κ°μ΄ ν κ°λ§ λ΄κΈ°κ³ , λ³μλͺ
(μ΄λ¦)λ λ°λμ λΆμ¬μΌ ν©λλ€. λ³μλ₯Ό μ¬λ¬ κ° μ μΈνλ©΄ μ΄λ¦λ λ§μμ Έμ κ΄λ¦¬νκΈ°κ° λΆνΈν΄μ§λλ€.
listλ νλμ μ΄λ¦μ κ°μ§κ³ κ° κ°μ μΈλ±μ€(κ°μ μμΉ)λ‘ μ κ·ΌνκΈ° λλ¬Έμ κ°μ κ΄λ¦¬νκΈ° ν¨μ¬ νΈνκ³ μ¬μμ§λλ€.
π μ¬κΈ°μ μ κΉ!
μΈλ±μ€λ?
μνμ€ν μλ£ (μμλλ‘ λμ΄λ λ°μ΄ν° : λ¬Έμμ΄, list, tuple)μ μλ κ° μμμ μμΉλ₯Ό λνλ΄λ κ°.
λ€μ ν¬μ€ν
μμ μΈλ±μ€μ λν λ΄μ©μ νμΈν΄ μ£ΌμΈμπ
# λ³μλ₯Ό μ μΈ -> μ¬λ¬κ°μ λ³μλ₯Ό μ μΈνλ©΄ κ°μ κ΄λ¦¬νκΈ° 볡μ‘νκ³ λΆνΈ
num1 = 1
num2 = 2
num3 = 3
num4 = 4
num5 = 5
color1 = 'red'
color2 = 'orange'
color3 = 'yellow'
color4 = 'green'
color5 = 'blue'
# listλ‘ μ μΈ -> μ΄λ¦ νλλ‘ μΈλ±μ€(κ°μ μμ)λ‘ μνλ κ°μ μ½κ³ νΈνκ² κ°μ Έ μ΄
num = [1, 2, 3, 4, 5]
color = [red, orange, yellow, green, blue]
λ κ·μΉμ±μ΄ μλ κ°μ listλ₯Ό μ¬μ©νμ¬ κ·μΉμ±μ λΆμ¬ν μ μμ΅λλ€.
# κ·μΉμ±μ΄ μλ κ°λ€μ μ μΈ
num = 1
color = 'white'
animal = 'panda'
fruit = 'apple'
city = 'korea'
# listλ₯Ό μ¬μ©νμ¬ κ·μΉμ±μ λΆμ¬
data = [1, 'white', 'panda', 'apple', 'korea']
βΆ list μ μΈ
listλ₯Ό λκ΄νΈλ‘ ννλλ©° μ μΈνλ ννλ κΈ°λ³Έμ μΌλ‘ μλμ κ°μ΅λλ€.
listλͺ
= [κ° 1, κ° 2, κ° 3...]
λ νλμ listμλ μ μ, λ¬Έμμ΄ λ± μ¬λ¬ κ°μ§μ μλ£νμ κ°μ§ μλ μμ΅λλ€.
a = [] # λΉ λ¦¬μ€νΈ (μ΄κΈ°κ°)
b = [1, 2, 3] # μ μλ‘λ§ μ΄λ£¨μ΄μ§ 리μ€νΈ
c = ['a', 'b', 'c', 'd'] # λ¬Έμμ΄ 4κ°λ‘ μ΄λ£¨μ΄μ§ 리μ€νΈ
d = [1, 2, 'a', 'b', True] ;# μ¬λ¬ μλ£νμΌλ‘ μ΄λ£¨μ΄μ§ 리μ€νΈ
e = [1, 2, ['a', 'b']] # μ€μ²© 리μ€νΈ
βΆ list μ°μ°μ
list μ°μ°μμλ μ°κ²° μ°μ°μ (+), λ°λ³΅ μ°μ°μ (*), μ¬λΌμ΄μ± μ°μ°μ, λ©€λ²μ μ°μ°μ(in)κ° μλ€.
μ¬λΌμ΄μ±μ λ€μ ν¬μ€ν λ΄μ©μ μ°Έκ³ ν΄ μ£ΌμΈμ!
- μ°κ²° μ°μ°μ + : listλ₯Ό νλμ 리μ€νΈλ‘ κ²°ν©
- λ°λ³΅ μ°μ°μ * : listλ₯Ό μ μλ§νΌ λ°λ³΅
list_a = [1, 2, 3]
list_b = [4, 5, 6]
list_c = list_a + list_b # μ°κ²° μ°μ°μ +
print(list_c) # [1, 2, 3, 4, 5, 6]
list_d = list_a * 3 # 3λ² λ°λ³΅
print('list_d :',list_d) # [1, 2, 3, 1, 2, 3, 1, 2, 3]
- λ©€λ²μ μ°μ°μ in : νΉμ μμμ ν¬ν¨ μ¬λΆ νμΈ (μ°Έ : True, κ±°μ§ : False λ°ν)
data = [1, 2, 3, 4, 5]
print(2 in data) # True
print(6 in data) # False
βΆ list μΆκ°
listμλ μμμ 맨 λ€μ νλμ κ°μ μΆκ°(append)νκ±°λ μνλ μμΉμ νλμ κ°μ μΆκ°(insert) ν μλ μμ΅λλ€.
- listλͺ .append(κ°)
list = [1, 2, 3]
list.append(4) # 맨 λ€μ κ° 4λ₯Ό μ½μ
# print(list) # [1, 2, 3, 4]
- listλͺ .insert(μΈλ±μ€ λ²νΈ, κ°)
list1 = [1, 2, 3]
list1.insert(1, 50) # 1λ² μΈλ±μ€ μ리μ 50μ μ½μ
print('list1:', list1) # [1, 50, 2, 3]
list κ°μ μ μΌ μ²« λ²μ§Έ μΈλ±μ€λ 0λ²μ΄λ©° λ€μμ + 1μ ν΄μ£Όλ©΄ λ©λλ€.
μ μμ list1μ 1λ² μΈλ±μ±μ 2μ
λλ€.
insert(1, 50) ν¨μλ₯Ό μ΄μ©ν΄μ 1λ² μΈλ±μ€ μ리μ 50μ μ½μ
νλ©΄ κΈ°μ‘΄ [1, 2, 3]μμ 1λ² μΈλ±μ€ μ리μ 50μ΄ μΆκ°λμ΄ [1, 50, 2, 3]μ΄ μΆλ ₯λ©λλ€.
βΆ list μμ
listμ κ°μ μΈλ±μ±μ μ¬μ©νμ¬ νΉμ μμΉλ₯Ό μμ ν μλ μμ΅λλ€.
- listλͺ [μΈλ±μ€ λ²νΈ] = μλ‘μ΄ κ°
list2 = [1, 2, 3, 4]
list2[0] = 20 # 0λ² μΈλ±μ€ μ리μ κ°μ 20μΌλ‘ μμ
print(list2) # [20, 2, 3, 4]
βΆ list μμ
listλ₯Ό μμ νλ λ°©λ²μΌλ‘λ νΉμ κ°μ κ°μ§ 첫 λ²μ§Έ μμλ₯Ό μ§μ°λ remove, μΈλ±μ€ λ²νΈλ‘ μνλ μμΉμ κ°μ μ ννκ² μ§μ°λ delκ³Ό pop, λͺ¨λ κ°μ μμ νλ clearκ° μμ΅λλ€.
- listλͺ .remove(κ°)
list3 = [0, 7, 2, 3, 4, 5, 7]
list3.remove(7) # μ²μμΌλ‘ λ§λλ 7μ μ§μ°κΈ°
print(list3) # [0, 2, 3, 4, 5, 7]
list3μλ 7μ΄ λ λ² λ€μ΄κ° μμ΅λλ€.
removeλ₯Ό μ¬μ©νκ² λλ©΄ 첫 λ²μ§Έλ‘ λ§λλ 7λ§ μ§μ°κ³ λ€μ μλ 7μ κ·Έλλ‘ μΆλ ₯λ©λλ€.
- del listλͺ [μΈλ±μ€ λ²νΈ]
list4 = [0, 1, 2, 3, 4, 5]
del list4[1] # 1λ² μΈλ±μ€ κ°μ μμ
print(list4) # [0, 2, 3, 4, 5]
- listλͺ .pop(μΈλ±μ€ λ²νΈ)
list5 = [0, 1, 2, 3, 4, 5]
list5.pop(1) # 1λ² μΈλ±μ€ κ°μ μμ
print(list5) # [0, 2, 3, 4, 5]
- listλͺ .clear()
list6 = [0, 1, 2, 3, 4, 5]
list6.clear() # list6 λͺ¨λ μμ μμ
print(list6) # []
3. νν(tuple)π
tupleμ listμ λ§μ°¬κ°μ§λ‘ μμκ° μλ μλ£ν (μνμ€ μλ£ν)μ΄λ―λ‘ μΈλ±μ±κ³Ό μ¬λΌμ΄μ±μ΄ κ°λ₯νλ©° μ°μ°μ μνν μλ μμ΅λλ€. (λ§μ , κ³±μ )
νμ§λ§ λͺ
νν μ°¨μ΄μ μΌλ‘λ listμ λ¬λ¦¬ tupleμ μμ±λκ³ λλ©΄ κ·Έ κ°μ λ³κ²½ν μ μμ΅λλ€.
βΆ tuple μ μΈ
tupleμ μκ΄νΈλ₯Ό μ¬μ©νκ±°λ μλ΅νμ¬ μ μΈν μ μμΌλ©° μΌνλ‘ κ° μμλ₯Ό ꡬλΆν©λλ€.
- dataTuple1 = (1,2,3)
- dataTuple1 = 1,2,3
dataTuple1 = (1,2,3)
dataTuple1[0] = 10 # ννμ κ°μ μμ λΆκ°
print(dataTuple1[0]) # μλ¬ λ°μ!
β οΈ Errorβ οΈ TypeError: 'tuple' object does not support item assignment
(νμ
μλ¬ : 'tuple' κ°μ²΄λ νλͺ© ν λΉμ μ§μνμ§ μμ΅λλ€.)
λ νλ μ£Όμν μ μ κ°μ νλλ§ λ΄κ² λ κ²½μ° λ³μλ‘ μΈμνκ² λ©λλ€.
dataTuple = (100)
print(dataTuple) # 100
print(type(dataTuple)) # <class 'int'>
dataTupleμ 100μ΄λΌλ κ°μ΄ νλλ§ λ΄κ²Όκ³
print ν¨μλ₯Ό μ΄μ©νμ¬ typeμ νμΈν΄ 보λ int νμ
μμ νμΈν μ μμ΅λλ€.
tupleμ μ¬λ¬ κ°μ κ°μ λ΄κΈ° μν΄μ μ¬μ©νμ§λ§ νΉμ¬λ νλμ κ°μ λ΄κ³ μΆλ€λ©΄ dataTuple = (100, ) μ΄λ κ² λ³κ²½νλ©΄ λ©λλ€. μ¦, νλμ κ° λ€μ μΌνλ₯Ό λΆμ¬μ£Όλ©΄ tupleλ‘ μ¬μ©ν μ μκ² λ©λλ€.
4. 리μ€νΈ(list)μ νν(tuple) λΉκ΅π
κ·ΈλΌ μ΄λ²μλ 리μ€νΈ(list)μ νν(tuple)μ 곡ν΅μ κ³Ό μ°¨μ΄μ μ μ΄ν΄λ³΄κ² μ΅λλ€.
⢠곡ν΅μ
- μμκ° μλ μλ£ν (μνμ€ μλ£ν)
- μμκ° μμΌλ―λ‘ μΈλ±μ±κ³Ό μ¬λΌμ΄μ± κ°λ₯
- μ°μ°μ΄ κ°λ₯ (λ§μ , κ³±μ )
βΆ μ°¨μ΄μ
list | tuple |
λκ΄νΈ μ¬μ© [ ] | μκ΄νΈ μ¬μ© ( ) , μλ΅ κ°λ₯ |
κ° μμ , μΆκ°, μμ κ°λ₯ | κ° λ³κ²½ λΆκ° |
5. ν΅μ¬λ΄μ©π