Codelog

Mutable๊ณผ Immutable ๋ณธ๋ฌธ

Python

Mutable๊ณผ Immutable

minzeros 2022. 5. 31. 17:00

๐Ÿ“Œ Mutable : ์ˆ˜์ • ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด

> list, dict

 

๐Ÿ“Œ Immutable : ์ˆ˜์ • ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด

> int, float, str, tuple

 

a = 'python1'
id(a)
>>> 2569647077488

a = 'python2'
id(a)
>>> 2569647077360

 

  • 'python1' ๋ผ๋Š” ๋ฌธ์ž์—ด ๊ฐ์ฒด๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์˜ 2569647077488 ๋ฒˆ์ง€์— ํ• ๋‹น๋˜๊ณ  ํ•ด๋‹น ๊ฐ์ฒด๋ฅผ  a๋ผ๋Š” ๋ณ€์ˆ˜๊ฐ€ ๋ฐ”์ธ๋”ฉํ•œ๋‹ค.
  • 'python2' ๋ผ๋Š” ๋ฌธ์ž์—ด ๊ฐ์ฒด๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์˜ 2569647077360 ๋ฒˆ์ง€์— ํ• ๋‹น๋˜๊ณ  ํ•ด๋‹น ๊ฐ์ฒด๋ฅผ  a๋ผ๋Š” ๋ณ€์ˆ˜๊ฐ€ ๋ฐ”์ธ๋”ฉํ•œ๋‹ค.
  • 'python1' ๋ผ๋Š” ๋ฌธ์ž์—ด ๊ฐ์ฒด๋Š” ์•„๋ฌด๋„ ์ž์‹ ์„ ์ฐธ์กฐํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ์— ์˜ํ•ด ์ž๋™์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์†Œ๋ฉธ๋œ๋‹ค.

 

๋ฌธ์ž์—ด ๊ฐ์ฒด๋Š” ์ˆ˜์ • ๋ถˆ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์กด ๊ฐ์ฒด๋Š” ํ•ด๋‹น ์ฃผ์†Œ์— ๊ทธ๋Œ€๋กœ ์žˆ๊ณ 
์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜๊ฒŒ ๋œ๋‹ค. (์ƒˆ๋กœ์šด ์ฃผ์†Œ์— ํ• ๋‹น)
๋ณ€์ˆ˜๊ฐ€ ์ƒˆ๋กœ ์ƒ์„ฑ๋œ ๋ฌธ์ž์—ด ๊ฐ์ฒด๋ฅผ ๋ฐ”์ธ๋”ฉํ•˜๊ฒŒ ๋˜๋ฉด ๊ธฐ์กด ๋ฌธ์ž์—ด ๊ฐ์ฒด๋Š” ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ์— ์˜ํ•ด ์ž๋™์œผ๋กœ ์†Œ๋ฉธ๋œ๋‹ค.

 

a = ["python2", "python3"]
id(a)
>>> 4398197808

a.append("python4")
a
>>> ['python2', 'python3', 'python4']

id(a)
>>> 4398197808

id(a[0])
>>> 4399272816

id(a[1])
>>> 4399272880

id(a[2])
>>> 4399272944

a๋ผ๋Š” ๋ณ€์ˆ˜๋Š” ๋ฆฌ์ŠคํŠธ ๊ฐ์ฒด๋ฅผ ๋ฐ”์ธ๋”ฉํ•œ๋‹ค. ๋ฆฌ์ŠคํŠธ์— ๊ฐ’์„ ์ถ”๊ฐ€ํ•ด๋„ ๋ฆฌ์ŠคํŠธ ๊ฐ์ฒด์˜ ์‹œ์ž‘ ์ฃผ์†Œ ๊ฐ’์€ ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค.

๋ฆฌ์ŠคํŠธ ๊ฐ์ฒด๋Š” [0]๋ฒˆ [1]๋ฒˆ, [2]๋ฒˆ์ด ๋ฆฌ์ŠคํŠธ์˜ ์›์†Œ์ธ ๋ฌธ์ž์—ด ๊ฐ์ฒด๋ฅผ ๋‹ค์‹œ ๋ฐ”์ธ๋”ฉํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ๊ฐ–๋Š”๋‹ค.

๋”ฐ๋ผ์„œ ๋ฆฌ์ŠคํŠธ์— ์›์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•ด๋„ ๋ฆฌ์ŠคํŠธ ๊ฐ์ฒด์˜ ์‹œ์ž‘ ์ฃผ์†Œ๋Š” ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

 

 

 

 

https://wikidocs.net/91520

 

03) Immutable๊ณผ Mutable

[TOC] ## ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ทธ๋ฆผ์œผ๋กœ ํ‘œํ˜„ํ•˜๊ธฐ ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ  ๋ฉ”๋ชจ๋ฆฌ์˜ ์ƒํƒœ๋ฅผ ์šฐ์„  ๊ทธ๋ ค๋ด…์‹œ๋‹ค. ``` >>> a = hello >>> b = [hell ...

wikidocs.net