πŸ”¬ Explore/파이썬

[파이썬] set, μ§‘ν•© ν•¨μˆ˜

devCloud 2024. 10. 29. 18:52
728x90

set(μ§‘ν•©)

set λŠ” 쀑볡을 ν—ˆμš©ν•˜μ§€ μ•ŠλŠ” λ³€κ²½ κ°€λŠ₯ν•œ 데이터 ꡬ쑰둜, μˆ˜ν•™μ—μ„œμ˜ μ§‘ν•©κ³Ό μœ μ‚¬ν•œ κ°œλ…μ„ μ œκ³΅ν•œλ‹€. μˆœμ„œκ°€ μ—†κ³ , 각 μš”μ†ŒλŠ” κ³ μœ ν•΄μ•Ό ν•˜λ©°, μš”μ†Œ κ°„μ˜ λΉ λ₯Έ 검색, μΆ”κ°€, μ‚­μ œλ₯Ό μ§€μ›ν•œλ‹€.

λ°μ΄ν„°μ˜ κ³ μœ μ„±μ„ 보μž₯ν•˜κ³ , μ€‘λ³΅λœ 값을 μ²˜λ¦¬ν•˜κ±°λ‚˜ μ§‘ν•© 연산이 ν•„μš”ν•œ κ²½μš°μ— μœ μš©ν•˜κ²Œ μ‚¬μš©λœλ‹€.

 

set의 μ£Όμš” νŠΉμ§•

  • 쀑볡 ν—ˆμš© μ•ˆν•¨ : ν•œ μ§‘ν•© λ‚΄μ—μ„œ λ™μΌν•œ 값이 쀑볡될 수 μ—†λ‹€.
  • μˆœμ„œ μ—†μŒ : μ €μž₯된 μˆœμ„œκ°€ μœ μ§€λ˜μ§€ μ•ŠμœΌλ©°, μš”μ†Œλ₯Ό 인덱슀둜 μ ‘κ·Όν•  수 μ—†λ‹€.
  • λ³€κ²½ κ°€λŠ₯ : 집합은 μƒˆλ‘œμš΄ μš”μ†Œλ₯Ό μΆ”κ°€ν•˜κ±°λ‚˜ μ‚­μ œν•  수 μžˆλ‹€.
  • λΉ λ₯Έ μ—°μ‚° : ν•΄μ‹œ ν…Œμ΄λΈ” 기반으둜, μ›μ†Œμ˜ μΆ”κ°€/제거/검색이 ν‰κ· μ μœΌλ‘œ 맀우 λΉ λ₯΄λ‹€.

 

set 생성 방법

1️⃣ 방법 1 : μ€‘κ΄„ν˜Έ {}λ₯Ό μ‚¬μš©

my_set = {1, 2, 3, 4, 5}

 

 

2️⃣ 방법 2 : set() ν•¨μˆ˜λ₯Ό μ‚¬μš©

my_set = set([1, 2, 3, 4, 5])

 

 

μ£Όμš” μ—°μ‚°

1️⃣ μš”μ†Œ μΆ”κ°€

my_set.add(6)
  • add() λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•΄ 집합에 μš”μ†Œλ₯Ό μΆ”κ°€ν•  수 μžˆλ‹€.

 

2️⃣ μš”μ†Œ μ‚­μ œ 

my_set.remove(4) 
my_set.discard(10)
  • remove()와 discard() λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•΄ μš”μ†Œλ₯Ό μ œκ±°ν•œλ‹€.
  • remove()λŠ” μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” μš”μ†Œλ₯Ό μ‚­μ œν•˜λ € ν•˜λ©΄ 였λ₯˜κ°€ λ°œμƒν•˜μ§€λ§Œ, discard()λŠ” μ‘΄μž¬ν•˜μ§€ μ•Šμ•„λ„ 였λ₯˜κ°€ λ°œμƒν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

 

3️⃣λͺ¨λ“  μš”μ†Œ 제거

my_set.clear()
  • clear() λ©”μ„œλ“œλ‘œ μ§‘ν•©μ˜ λͺ¨λ“  μš”μ†Œλ₯Ό μ œκ±°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

 

μ§‘ν•© μ—°μ‚°

파이썬의 set λŠ” μˆ˜ν•™μ  μ§‘ν•© 연산을 μ§€μ›ν•œλ‹€.

 

1️⃣ ν•©μ§‘ν•© (| λ˜λŠ” union())

set1 = {1, 2, 3}
set2 = {3, 4, 5}
result = set1 | set2  # {1, 2, 3, 4, 5}

 

2️⃣ ꡐ집합 (& λ˜λŠ” intersection())

result = set1 & set2  # {3}

 

3️⃣ μ°¨μ§‘ν•© (- λ˜λŠ” difference())

result = set1 - set2  # {1, 2}

 

4️⃣ λŒ€μΉ­μ°¨μ§‘ν•© (^ λ˜λŠ” symmetric_difference())

result = set1 ^ set2  # {1, 2, 4, 5}
  • 두 μ§‘ν•© 간에 μ„œλ‘œ μ—†λŠ” μš”μ†Œλ§Œ 포함.

 

μš”μ†Œ 검사

μ§‘ν•© μ•ˆμ— νŠΉμ • μš”μ†Œκ°€ μžˆλŠ”μ§€ 확인할 수 μžˆλ‹€.

if 3 in set1:
    print("3이 set1에 μžˆμŠ΅λ‹ˆλ‹€.")

 

 

쀑볡 제거

λ¦¬μŠ€νŠΈλ‚˜ λ‹€λ₯Έ μžλ£Œν˜•μ—μ„œ 쀑볡을 μ œκ±°ν•  λ•Œλ„ set을 μ‚¬μš©ν•  수 μžˆλ‹€.

my_list = [1, 2, 2, 3, 3, 4]
unique_items = set(my_list)  # {1, 2, 3, 4}

 


 

728x90