๋ฐ์ํ
โ ์์ ๋ณต์ฌ
- ์์ ๋ณต์ฌ๋ ์๋ณธ ๊ฐ์ฒด์ ์ฐธ์กฐ๋ง ๋ณต์ฌํ์ฌ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ. ์ฆ, ์๋ณธ ๊ฐ์ฒด์ ๋ณต์ฌ๋ ๊ฐ์ฒด๋ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ์ฐธ์กฐ
- ์๋ณธ ๊ฐ์ฒด์ ๋ณต์ฌ๋ ๊ฐ์ฒด๊ฐ ๋์ผํ ์ฐธ์กฐ๋ฅผ ๊ฐ์ง๋ฏ๋ก, ํ๋์ ๊ฐ์ฒด์์ ๋ณ๊ฒฝ์ด ๋ฐ์ํ๋ฉด ๋ค๋ฅธ ๊ฐ์ฒด์๋ ์ํฅ์ ๋ฏธ์นจ.
- 1์ฐจ์ ๋ฐฐ์ด์์๋ ์์ ๋ณต์ฌ์ ๊น์ ๋ณต์ฌ์ ์ฐจ์ด๊ฐ ํฌ์ง ์์.
- ๋ค์ฐจ์ ๋ฐฐ์ด์์๋ ์์ ๋ณต์ฌ๋ก ์ธํด ๋ด๋ถ ๋ฆฌ์คํธ๋ ๋ฐฐ์ด์ ์์๊ฐ ๊ณต์ ๋จ.
import copy
# ์๋ณธ ๋ฆฌ์คํธ
original_list = [1, 2, [3, 4]]
# ์์ ๋ณต์ฌ
shallow_copied_list = copy.copy(original_list)
# ์๋ณธ ๋ฆฌ์คํธ์ ์์ ๋ณต์ฌ๋ ๋ฆฌ์คํธ๋ฅผ ์ถ๋ ฅ
print(original_list) # ์ถ๋ ฅ: [1, 2, [3, 4]]
print(shallow_copied_list) # ์ถ๋ ฅ: [1, 2, [3, 4]]
# ์๋ณธ ๋ฆฌ์คํธ์ ๋ด๋ถ ๋ฆฌ์คํธ ์์๋ฅผ ๋ณ๊ฒฝ
original_list[2][0] = 99
# ์๋ณธ ๋ฆฌ์คํธ์ ์์ ๋ณต์ฌ๋ ๋ฆฌ์คํธ๋ฅผ ๋ค์ ์ถ๋ ฅ
print(original_list) # ์ถ๋ ฅ: [1, 2, [99, 4]]
print(shallow_copied_list) # ์ถ๋ ฅ: [1, 2, [99, 4]]
โ ๊น์ ๋ณต์ฌ
- ๊น์ ๋ณต์ฌ๋ ์๋ณธ ๊ฐ์ฒด์ ๋ชจ๋ ์์๋ฅผ ์ฌ๊ท์ ์ผ๋ก ๋ณต์ฌํ์ฌ ์์ ํ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ. ์ฆ, ์๋ณธ ๊ฐ์ฒด์ ๋ณต์ฌ๋ ๊ฐ์ฒด๋ ์๋ก ๋ค๋ฅธ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ์ฐธ์กฐ
- ์๋ณธ ๊ฐ์ฒด์ ๋ณต์ฌ๋ ๊ฐ์ฒด๊ฐ ์์ ํ ๋ ๋ฆฝ์ ์ด๋ฏ๋ก, ํ๋์ ๊ฐ์ฒด์์ ๋ณ๊ฒฝ์ด ๋ฐ์ํด๋ ๋ค๋ฅธ ๊ฐ์ฒด์ ์ํฅ์ ๋ฏธ์น์ง ์์.
- ๋ค์ฐจ์ ๋ฐฐ์ด์์๋ ๊ฐ ์ฐจ์์ ์์๋ค์ด ๋ชจ๋ ๋ ๋ฆฝ์ ์ผ๋ก ๋ณต์ฌ๋จ.
import copy
# ์๋ณธ ๋ฆฌ์คํธ
original_list = [1, 2, [3, 4]]
# ๊น์ ๋ณต์ฌ
deep_copied_list = copy.deepcopy(original_list)
# ์๋ณธ ๋ฆฌ์คํธ์ ๊น์ ๋ณต์ฌ๋ ๋ฆฌ์คํธ๋ฅผ ์ถ๋ ฅ
print(original_list) # ์ถ๋ ฅ: [1, 2, [3, 4]]
print(deep_copied_list) # ์ถ๋ ฅ: [1, 2, [3, 4]]
# ์๋ณธ ๋ฆฌ์คํธ์ ๋ด๋ถ ๋ฆฌ์คํธ ์์๋ฅผ ๋ณ๊ฒฝ
original_list[2][0] = 99
# ์๋ณธ ๋ฆฌ์คํธ์ ๊น์ ๋ณต์ฌ๋ ๋ฆฌ์คํธ๋ฅผ ๋ค์ ์ถ๋ ฅ
print(original_list) # ์ถ๋ ฅ: [1, 2, [99, 4]]
print(deep_copied_list) # ์ถ๋ ฅ: [1, 2, [3, 4]]
โ๏ธ ํ ์ค ์ ๋ฆฌ
- ์์ ๋ณต์ฌ: ์๋ณธ ๊ฐ์ฒด์ ์ฐธ์กฐ๋ฅผ ๋ณต์ฌํ์ฌ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ์์ฑํจ. ์: copy.copy(original_list)
- ์๋ณธ ๊ฐ์ฒด์ ๋ณต์ฌ๋ ๊ฐ์ฒด๊ฐ ๋์ผํ ์ฐธ์กฐ๋ฅผ ๊ฐ์ง.
- ๋ค์ฐจ์ ๋ฐฐ์ด์์ ๋ด๋ถ ์์๊ฐ ๊ณต์ ๋จ.
- ๊น์ ๋ณต์ฌ: ์๋ณธ ๊ฐ์ฒด์ ๋ชจ๋ ์์๋ฅผ ์ฌ๊ท์ ์ผ๋ก ๋ณต์ฌํ์ฌ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ์์ฑํจ. ์: copy.deepcopy(original_list)
- ์๋ณธ ๊ฐ์ฒด์ ๋ณต์ฌ๋ ๊ฐ์ฒด๊ฐ ๋ ๋ฆฝ์ ์.
- ๋ค์ฐจ์ ๋ฐฐ์ด์์ ๊ฐ ์ฐจ์์ ์์๋ค์ด ๋ชจ๋ ๋ ๋ฆฝ์ ์ผ๋ก ๋ณต์ฌ๋จ.
์์ ๋ณต์ฌ๋ ๋ฉ๋ชจ๋ฆฌ์ ์๊ฐ์ ์ ์ฝํ ์ ์์ง๋ง, ์๋ณธ๊ณผ ๋ณต์ฌ๋ณธ ๊ฐ์ ๊ฐ์ญ์ด ๋ฐ์ํ ์ ์์.
๋ฐ๋ฉด, ๊น์ ๋ณต์ฌ๋ ์๋ณธ๊ณผ ๋ณต์ฌ๋ณธ์ด ๋ ๋ฆฝ์ ์ด์ง๋ง, ๋ ๋ง์ ๋ฉ๋ชจ๋ฆฌ์ ์๊ฐ์ด ํ์ํจ.
๋ฐ์ํ