μμ 볡μ¬μ κΉμ 볡μ¬μ κ°λ κ³Ό μ°¨μ΄μ
κ°μ²΄λ₯Ό 볡μ¬νλ λ°©λ²μΌλ‘ μμ(Shallow) 볡μ¬μ κΉμ(Deep) 볡μ¬κ° μμ΅λλ€.
μμ 볡μ¬λ μλ³Έ λλ 볡μ¬λ³Έ μ€ νλλ₯Ό λ³κ²½νλ©΄ λ€λ₯Έ νλμλ μν₯μ λ―ΈμΉ©λλ€.
κΉμ 볡μ¬λ μλ³Έκ³Ό 볡μ¬λ³Έμ΄ μμ ν λ 립μ μ΄λ―λ‘, μλ³Έ λλ 볡μ¬λ³Έ μ€ νλλ₯Ό λ³κ²½νλλΌλ λ€λ₯Έ νλμλ μν₯μ λ―ΈμΉμ§ μμ΅λλ€.
μμ 볡μ¬(Shallow Copy)
μμ 볡μ¬λ 볡μ¬λ κ°μ²΄μ μλ³Έ κ°μ²΄κ° λ΄λΆ κ°μ²΄λ₯Ό 곡μ νκ² λ©λλ€.
# 리μ€νΈλ₯Ό λ§λλλ€ original = [1, 2, 3, [4, 5, 6]] # μμ 볡μ¬λ₯Ό μνν©λλ€. μ΄λ₯Ό μν΄ list() ν¨μλ₯Ό μ¬μ©ν μ μμ΅λλ€. shallow_copied = list(original) # μμ 볡μ¬λ 리μ€νΈμ μ€μ²©λ 리μ€νΈλ₯Ό λ³κ²½ν©λλ€. shallow_copied[3][0] = 99 # κ²°κ³Ό μΆλ ₯ print("Original:", original) # [1, 2, 3, [99, 5, 6]] μΆλ ₯ : μλ³Έ 리μ€νΈλ λ³κ²½λ¨ print("Shallow Copied:", shallow_copied) # [1, 2, 3, [99, 5, 6]] μΆλ ₯
μ μμμμ shallow_copied 리μ€νΈμ μ€μ²©λ 리μ€νΈλ₯Ό λ³κ²½νλ©΄, original 리μ€νΈλ λ³κ²½λ©λλ€.
κΉμ 볡μ¬(Deep Copy)
κΉμ 볡μ¬λ κ°μ²΄μ λͺ¨λ μμ€μμ μλ‘μ΄ κ°μ²΄λ₯Ό μμ±ν©λλ€. 볡μ¬λ κ°μ²΄λ μλ³Έ κ°μ²΄μ μμ ν λ 립μ μ΄λ©°, μλ³Έ κ°μ²΄μ λ³κ²½μ΄ 볡μ¬λ κ°μ²΄μ μν₯μ μ£Όμ§ μμ΅λλ€.
import copy original = [1, 2, 3, [4, 5, 6]] deep_copied = copy.deepcopy(original) deep_copied[3][0] = 99 # κ²°κ³Ό μΆλ ₯ print("Original:", original) # [1, 2, 3, [4, 5, 6]] μΆλ ₯ : μλ³Έ 리μ€νΈλ λ³κ²½λμ§ μμ print("Deep Copied:", deep_copied) # [1, 2, 3, [99, 5, 6]] μΆλ ₯ : 볡μ¬λ 리μ€νΈλ§ λ³κ²½λ¨
Guidelines
AI Tutor
Publish
Design
Upload
Notes
Favorites
Help
Code Editor
Execution Result