λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Python

[Python] 집합 μžλ£Œν˜•

by μ½”λ”©ν•˜λŠ” λΆ•μ–΄ 2021. 2. 10.
λ°˜μ‘ν˜•

β–Ά 집합 μžλ£Œν˜•μ€ μ–΄λ–»κ²Œ λ§Œλ“€κΉŒ?

집합(set)은 파이썬 2.3λΆ€ν„° μ§€μ›ν•˜κΈ° μ‹œμž‘ν•œ μžλ£Œν˜•μœΌλ‘œ, 집합에 κ΄€λ ¨λœ 것을 μ‰½κ²Œ μ²˜λ¦¬ν•˜κΈ° μœ„ν•΄ λ§Œλ“  μžλ£Œν˜•μ΄λ‹€.

​

>>> s1 = set([1, 2, 3])
>>> s1
{1, 2, 3}

μœ„μ™€ 같이 set()의 κ΄„ν˜Έ μ•ˆμ— 리슀트λ₯Ό μž…λ ₯ν•˜μ—¬ λ§Œλ“€ 수 μžˆλ‹€.

 

>>> s2 = set("Hello")
>>> s2
{'e', 'H', 'l', 'o'}

μœ„μ™€ 같이 λ¬Έμžμ—΄μ„ μž…λ ₯ν•΄μ„œ λ§Œλ“€ μˆ˜λ„ μžˆλ‹€.

 

 

 

β–Ά 집합 μžλ£Œν˜•μ˜ νŠΉμ§•

setμ—λŠ” 2가지 큰 νŠΉμ§•μ΄ μžˆλ‹€.

​

1. 쀑볡을 ν—ˆμš©ν•˜μ§€ μ•ŠλŠ”λ‹€.

2. μˆœμ„œκ°€ μ—†λ‹€.

​

λ¦¬μŠ€νŠΈλ‚˜ νŠœν”Œμ€ μˆœμ„œκ°€ 있기 λ•Œλ¬Έμ— 인덱싱을 톡해 μžλ£Œν˜•μ˜ 값을 얻을 수 μžˆμ§€λ§Œ set μžλ£Œν˜•μ€ μˆœμ„œκ°€ μ—†κΈ° λ•Œλ¬Έμ— μΈλ±μ‹±μœΌλ‘œ 값을 얻을 수 μ—†λ‹€. λ”•μ…”λ„ˆλ¦¬ μ—­μ‹œ μˆœμ„œκ°€ μ—†λŠ” μžλ£Œν˜•μ΄λΌ 인덱싱을 μ§€μ›ν•˜μ§€ μ•ŠλŠ”λ‹€.

 

>>> s1 = set([1, 2, 3])
>>> l1 = list(s1)   ← 리슀트둜 λ³€ν™˜
>>> l1
[1, 2, 3]
>>> l1[0]
1
>>> t1 = tuple(s1)   ← νŠœν”Œλ‘œ λ³€ν™˜
>>> t1
(1, 2, 3)
>>> t1[0]
1

λ§Œμ•½ set μžλ£Œν˜•μ— μ €μž₯된 값을 μΈλ±μ‹±μœΌλ‘œ μ ‘κ·Όν•˜λ €λ©΄ λ‹€μŒκ³Ό 같이 λ¦¬μŠ€νŠΈλ‚˜ νŠœν”Œλ‘œ λ³€ν™˜ν•œ ν›„ ν•΄μ•Ό ν•œλ‹€.

​

 

 

β–Ά ꡐ집합, 합집합, 차집합 κ΅¬ν•˜κΈ°

set μžλ£Œν˜•μ„ 정말 μœ μš©ν•˜κ²Œ μ‚¬μš©ν•˜λŠ” κ²½μš°λŠ” ꡐ집합, 합집합, 차집합을 ꡬ할 λ•Œμ΄λ‹€.

>>> s1 = set([1, 2, 3, 4, 5, 6])
>>> s2 = set([4, 5, 6, 7, 8, 9])

 

 

-ꡐ집합

>>> s1 & s2
{4, 5, 6}

'&' 기호λ₯Ό μ‚¬μš©ν•˜λ©΄ ꡐ집합을 κ°„λ‹¨νžˆ ꡬ할 수 μžˆλ‹€.

 

>>> s1.intersection(s2)
{4, 5, 6}

intersection ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•΄λ„ λ™μΌν•œ κ²°κ³Όλ₯Ό λŒλ €μ€€λ‹€.

 

 

-합집합

>>> s1 | s2
{1, 2, 3, 4, 5, 6, 7, 8, 9}

'|' 기호λ₯Ό μ‚¬μš©ν•œ 방법

 

>>> s1.union(s2)
{1, 2, 3, 4, 5, 6, 7, 8, 9}

union ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•΄λ„ λ™μΌν•œ κ²°κ³Όλ₯Ό λŒλ €μ€€λ‹€.

 

 

-차집합

>>> s1 - s2
{1, 2, 3}
>>> s2 - s1
{8, 9, 7}

λΉΌκΈ°(-) 기호λ₯Ό μ‚¬μš©ν•œ 방법이닀.

 

>>> s1.difference(s2)
{1, 2, 3}
>>> s2.difference(s1)
{8, 9, 7}

difference ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•΄λ„ 차집합을 ꡬ할 수 μžˆλ‹€.

 

 

 

β–Ά 집합 μžλ£Œν˜• κ΄€λ ¨ ν•¨μˆ˜

​

-κ°’ 1개 μΆ”κ°€ν•˜κΈ°(add)

이미 λ§Œλ“€μ–΄μ§„ set μžλ£Œν˜•μ— 값을 μΆ”κ°€ν•  수 μžˆλ‹€.

>>> s1 = set([1, 2, 3])
>>> s1.add(4)
>>> s1
{1, 2, 3, 4}

1개의 κ°’λ§Œ μΆ”κ°€(add)ν•  κ²½μš°μ—λŠ” μœ„μ™€ 같이 ν•œλ‹€.

 

 

-κ°’ μ—¬λŸ¬ 개 μΆ”κ°€ν•˜κΈ°(update)

>>> s1 = set([1, 2, 3])
>>> s1.update([4, 5, 6])
>>> s1
{1, 2, 3, 4, 5, 6}

 

 

-νŠΉμ • κ°’ μ œκ±°ν•˜κΈ°(remove)

>>> s1 = set([1, 2, 3])
>>> s1.remove(2)
>>> s1
{1, 3}
λ°˜μ‘ν˜•

'Python' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[Python] λ³€μˆ˜  (0) 2021.02.10
[Python] 뢈 μžλ£Œν˜•  (0) 2021.02.10
[Python] λ”•μ…”λ„ˆλ¦¬ μžλ£Œν˜•  (0) 2021.02.06
[Python] νŠœν”Œ μžλ£Œν˜•  (0) 2021.02.05
[Python] 리슀트 κ΄€λ ¨ ν•¨μˆ˜  (0) 2021.02.05

λŒ“κΈ€