ํ๋ก๊ทธ๋๋ฐ ์ธ์ด/Python
ํ์ด์ฌ ๊น์ ๋ณต์ฌ์ ์์ ๋ณต์ฌ
์์๋๐
2024. 4. 29. 01:33
๊ฐ์ฒด ์ฐธ์กฐ ํ์ธ
r1 = [1,2,3]
r2 = r1
r1 is r2 # True(r1๊ณผ r2๊ฐ ์ฐธ์กฐํ๋ ๊ฐ์ฒด๋ ๋์ผํ๊ฐ?)
r1 == r2 # True(r1๊ณผ r2์ ๊ฐ์ด ๊ฐ์๊ฐ?)
r1 = [1,2,3]
r2 = list(r1)
r1 is r2 # False(r1๊ณผ r2๊ฐ ์ฐธ์กฐํ๋ ๊ฐ์ฒด๋ ๋์ผํ๊ฐ?)
r1 == r2 # True(r1๊ณผ r2์ ๊ฐ์ด ๊ฐ์๊ฐ?)
์์ ๋ณต์ฌ์ ๋ฌธ์ ์ ์ ๋ณด๊ฒ ์ต๋๋ค.
r1 = ['John', ('man', 'USA'), [175, 23]]
r2 = list(r1)
r2[2][1] += 1 # John์ ๋์ด ํ์ด ๋ ๋จน์
print(r1)
print(r2)
# ['John', ('man', 'USA'), [175, 24]]
# ['John', ('man', 'USA'), [175, 24]]
r2๋ง ๋ณ๊ฒฝ๋๊ธธ ์ํ์ผ๋ r1์ ๋ ํผ๋ฐ์ค๊น์ง ๊ฐ์ด ๋ณต์ฌ๋๋ฉด์ r1์ ๋ฆฌ์คํธ์ r2์ ๋ฆฌ์คํธ๊ฐ ๊ฐ์ ๊ฐ์ฒด๋ฅผ ๋ฐ๋ผ๋ณด๊ณ ์์ต๋๋ค. ๋ฐ๋ผ์ ๊น์ ๋ณต์ฌ๋ฅผ ์งํํด์ผ ํฉ๋๋ค.
์ ๋ด์ฉ ๊ธฐ๋ฐ์ผ๋ก ๊น์ ๋ณต์ฌ๋ฅผ ํด๋ณด๊ฒ ์ต๋๋ค.
from copy import deepcopy
r1 = ['John', ('man', 'USA'), [175, 23]]
r2 = deepcopy(r1)
r2[2][1] += 1 # John์ ๋์ด ํ์ด ๋ ๋จน์
print(r1)
print(r2)
# ['John', ('man', 'USA'), [175, 23]]
# ['John', ('man', 'USA'), [175, 24]]
๋ฌธ์์ด, ํํ, int, float๊ณผ ๊ฐ์ Immutable ๊ฐ์ฒด์ ๋ํด์๋ ์์ ๋ณต์ฌ๋ ๋ฐ์ํฉ๋๋ค. ํ์ง๋ง ์๋ณธ ๊ฐ์ฒด์ ๋ณํจ์ด ์๊ธฐ ๋๋ฌธ์ ์์ ๋ณต์ฌ๋ก ๋ฐ์ํ ๋งํ ๋ฌธ์ ๋ ์๊ธฐ์ง ์์ต๋๋ค. ๋ฆฌ์คํธ์ ๋์ ๋๋ฆฌ ๊ฐ์ด ์๋ณธ ๊ฐ์ฒด๊ฐ ๋ง๊ตฌ ๋ฐ๋๋ Mutable ๊ฐ์ฒด๋ฅผ ๋ณต์ฌํ ๋๋ ๊น์ ๋ณต์ฌ๋ฅผ ํด์ค์๋ค!