๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Python

[Python] ๊ฐ์ฒด, ๊ฐ€๋ณ€๊ฐ์ฒด, ๋ถˆ๋ณ€๊ฐ์ฒด

by ์ฝ”๋”ฉํ•˜๋Š” ๋ถ•์–ด 2021. 11. 20.
๋ฐ˜์‘ํ˜•

๐Ÿ”ฅ ํŒŒ์ด์ฌ(Python)์€ ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด์ด๋‹ค. Python์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ํƒ€์ž…๋“ค์€ ๊ฐ์ฒด(object)์ด๋ฉฐ, ๊ฐ์ฒด ๋‹จ์œ„๋กœ ๋ฉ”๋ชจ๋ฆฌ ์ƒ์—์„œ ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค.

 

 

๐Ÿ›น ๊ฐ์ฒด๋ž€?

์–ด๋– ํ•œ ์†์„ฑ๊ฐ’๊ณผ ํ–‰๋™์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ.

 

ํŒŒ์ด์ฌ์˜ ๋ชจ๋“ ๊ฒƒ๋“ค(์ˆซ์ž, ๋ฌธ์ž, ํ•จ์ˆ˜ ๋“ฑ)์€ ์—ฌ๋Ÿฌ ์†์„ฑ๊ณผ ํ–‰๋™์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ์ด๋‹ค.
์ด๋Ÿฌํ•œ ๊ฐ์ฒด๋“ค์ด ๊ฐ€์ง„ ์†์„ฑ์ค‘์— ์ƒํƒœ๋Š” value, ๋˜๋Š” attribute๋ผ๊ณ  ํ•˜๊ณ , ๊ฐ์ฒด๊ฐ€ ๊ฐ€์ง„ ํ–‰๋™์€ method๋ผ๊ณ  ํ•œ๋‹ค.


๊ฐ์ฒด๋Š” ๊ฐ€๋ณ€(mutable)๊ฐ์ฒด, ๋ถˆ๋ณ€(immutable)๊ฐ์ฒด๋กœ ๋‚˜๋‰œ๋‹ค.

๊ฐ€๋ณ€๊ฐ์ฒด ๋ถˆ๋ณ€๊ฐ์ฒด
list, set, dict int, float, bool, tuple, string, unicode



๐Ÿ›น ๊ฐ์ฒด์˜ 3๊ฐ€์ง€ ํŠน์„ฑ

1. ๊ฐ’(value)

๋ฉ”๋ชจ๋ฆฌ์— ๊ธฐ๋ก๋œ ๋‚ด์šฉ.
๊ฐ€๋ณ€ ๊ฐ์ฒด๋Š” ๊ฐ’ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ, ๋ถˆ๋ณ€ ๊ฐ์ฒด๋Š” ๊ฐ’ ๋ณ€๊ฒฝ X

2. ์œ ํ˜•(type)

๊ฐ์ฒด์˜ ์œ ํ˜•.

3. ์ •์ฒด์„ฑ(identity)

๊ฐ๊ฐ์˜ ๊ฐ์ฒด๋ฅผ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ id ๊ณ ์œ ๋ฒˆํ˜ธ(๋ฉ”๋ชจ๋ฆฌ ์ƒ์— ์œ„์น˜ํ•œ ์ฃผ์†Œ ๊ฐ’)๋ฅผ ๋งํ•œ๋‹ค.



๐Ÿ›น ๊ฐ€๋ณ€๊ฐ์ฒด์™€ ๋ถˆ๋ณ€๊ฐ์ฒด

๊ฐ€๋ณ€๊ฐ์ฒด์™€ ๋ถˆ๋ณ€๊ฐ์ฒด๋Š” id ์ฃผ์†Œ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๋Š”๊ฐ€(mutable), ๋ณ€๊ฒฝ๋˜์ง€์•Š๋Š”๊ฐ€(immutable)์˜ ์ฐจ์ด๋‹ค.

id ์ฃผ์†Œ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜์ง€์•Š์œผ๋ฉด ๊ฐ€๋ณ€๊ฐ์ฒด๊ณ ,
id ์ฃผ์†Œ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๋ฉด ๋ถˆ๋ณ€๊ฐ์ฒด๋‹ค.

 

 

๐Ÿฅฟ ๊ฐ€๋ณ€๊ฐ์ฒด

์ƒ์„ฑ ์ดํ›„ ๊ฐ’์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด.

 

โœ” list, set, dict
โœ” ๊ฐ’์„ ๋ฐ”๊พธ๋ ค๋ฉด ๊ฐ์ฒด๋ฅผ ์ƒˆ๋กญ๊ฒŒ ์ƒ์„ฑํ•ด์•ผ ํ•œ๋‹ค. (์ด๋ถ€๋ถ„์€ ๋ถˆ๋ณ€๊ฐ์ฒด์™€ ๋™์ผ)
โœ” ๊ฐ์ฒด์— ํ• ๋‹น๋œ ๊ฐ’์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

ex)

# List
>>> list = [1, 2, 3, 4]
>>> id(list)
68189960
>>> list[1] = 100
>>> print(list)
[1, 100, 3, 4]
>>> id(list)
68189960  # id ์ฃผ์†Œ๊ฐ’์ด ๊ทธ๋Œ€๋กœ์ž„.
# set
>>> set = {1, 2, 3, 4}
>>> id(set)
68835784
>>> set.update([4,5,6])
>>> print(set)
{1, 2, 3, 4, 5, 6}
>>> id(set)
68835784  # id ์ฃผ์†Œ๊ฐ’์ด ๊ทธ๋Œ€๋กœ์ž„.
# dictionary
>>> d = {'a': 1, 'b': 2, 'c': 3}
>>> id(d)
75455056
>>> d['d'] = 4
>>> print(d)
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
>>> id(d)
75455056  # id ์ฃผ์†Œ๊ฐ’์ด ๊ทธ๋Œ€๋กœ์ž„.

 

 

๐Ÿฅฟ ๋ถˆ๋ณ€๊ฐ์ฒด

์ƒ์„ฑ ์ดํ›„ ๊ฐ’์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์—†๋Š” ๊ฐ์ฒด.

 

โœ” int, float, bool, tuple, string, unicode
โœ” ๋ถˆ๋ณ€ ๊ฐ์ฒด๋Š” ์ƒ์„ฑ๋  ๋•Œ ๊ทธ ๊ฐ’์ด ๊ฒฐ์ •๋œ๋‹ค.
โœ” ๊ฐ์ฒด์— ํ• ๋‹น๋œ ๊ฐ’์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†๋‹ค.
โœ” ์™ธ๋ถ€์—์„œ ์ž„์˜๋กœ ๋‚ด๋ถ€์˜ ๊ฐ’์„ ์ œ์–ดํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ์ฒด์˜ ์ž์œจ์„ฑ์ด ๋ณด์žฅ๋œ๋‹ค.
โœ” ๊ฐ’์ด ๊ณ ์ •์ ์ด๋ฏ€๋กœ ํ”„๋กœ๊ทธ๋žจ์˜ ์•ˆ์ •๋„๊ฐ€ ๋†’๋‹ค.

# int
>>> a = 1
>>> id(a)
1843455920
>>> a = 2
>>> id(a)
1843455936  # ๊ฐ’์„ ๋ฐ”๊พผ๊ฒŒ ์•„๋‹ˆ๋ผ ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋กœ ์žฌ์ •์˜ํ•จ.
# String
>>> a = 'a'
>>> id(a)
26561120
>>> a = 'b'
>>> id(a)
26592736
# tuple
>>> a = (1, 2)
>>> id(a)
68615912
>>> a = (1, 2, 3)
>>> id(a)
67963592
# float
>>> a = 1.2
>>> id(a)
75120720
>>> a = 2.2
>>> id(a)
75122864
# bool
>>> a = True
>>> id(a)
1843331392
>>> a = False
>>> id(a)
1843331408

 

 

 

 

Python Glossary(ํŒŒ์ด์ฌ ์šฉ์–ด ์„ค๋ช…์ง‘) : https://docs.python.org/3/glossary.html

๊ฐœ๋…์ด ๋ช…ํ™•ํ•˜์ง€ ์•Š์€ ์šฉ์–ด๊ฐ€ ์žˆ์œผ๋ฉด ์œ„์˜ ๊ณต์‹ํ™ˆํŽ˜์ด์ง€ ์šฉ์–ด์ง‘์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€