πŸ”¬ Explore/파이썬

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

devCloud 2024. 10. 24. 14:24
728x90

set()

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

 

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

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

 

set μƒμ„±ν•˜λŠ” 법

  • μ€‘κ΄„ν˜Έ {}λ₯Ό μ‚¬μš©ν•˜κ±°λ‚˜ set() ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ 집합을 μƒμ„±ν•©λ‹ˆλ‹€.
# 방법 1: μ€‘κ΄„ν˜Έ μ‚¬μš©
my_set = {1, 2, 3, 4, 5}

# 방법 2: set() ν•¨μˆ˜ μ‚¬μš©
my_set = set([1, 2, 3, 4, 5])

 

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

my_set.add(6)         # μš”μ†Œ μΆ”κ°€
my_set.remove(4)      # μš”μ†Œ 제거
my_set.discard(10)    # μš”μ†Œ 제거 (μ‘΄μž¬ν•˜μ§€ μ•Šμ•„λ„ 였λ₯˜ μ—†μŒ)
my_set.clear()        # λͺ¨λ“  μš”μ†Œ 제거
  1. μš”μ†Œ μΆ”κ°€ : add() λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•΄ 집합에 μš”μ†Œλ₯Ό μΆ”κ°€ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  2. μš”μ†Œ μ‚­μ œ : remove()와 discard() λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•΄ μš”μ†Œλ₯Ό μ œκ±°ν•©λ‹ˆλ‹€.
    • remove()λŠ” μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” μš”μ†Œλ₯Ό μ‚­μ œν•˜λ € ν•˜λ©΄ 였λ₯˜κ°€ λ°œμƒν•˜μ§€λ§Œ,
    • discard()λŠ” μ‘΄μž¬ν•˜μ§€ μ•Šμ•„λ„ 였λ₯˜κ°€ λ°œμƒν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
  3. λͺ¨λ“  μš”μ†Œ 제거: clear() λ©”μ„œλ“œλ‘œ μ§‘ν•©μ˜ λͺ¨λ“  μš”μ†Œλ₯Ό μ œκ±°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

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

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

 

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

set1 = {1, 2, 3}
set2 = {3, 4, 5}
result = set1 | set2
print(result)

 

좜λ ₯ κ²°κ³Ό

{1, 2, 3, 4, 5}

 

 
2️⃣ 2. ꡐ집합 (& λ˜λŠ” intersection())
result = set1 & set2
print(result)

 

좜λ ₯ κ²°κ³Ό

{3}

 

 
3️⃣ 3. μ°¨μ§‘ν•© (- λ˜λŠ” difference())
result = set1 - set2 
print(result)

 

좜λ ₯ κ²°κ³Ό

{1, 2}

 

 
4️⃣ 4. λŒ€μΉ­μ°¨μ§‘ν•© (^ λ˜λŠ” symmetric_difference())
  • 두 μ§‘ν•© 간에 μ„œλ‘œ μ—†λŠ” μš”μ†Œλ§Œ 포함.
result = set1 ^ set2
print(result}

 

좜λ ₯ κ²°κ³Ό

{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) 
print(unique_items)

 

좜λ ₯ κ²°κ³Ό

{1, 2, 3, 4}

 

μ§‘ν•© νŠΉμ§• μš”μ•½

  • 쀑볡을 ν—ˆμš©ν•˜μ§€ μ•ŠμŒ.
  • μˆœμ„œκ°€ μ—†λŠ” 데이터 ꡬ쑰.
  • μˆ˜ν•™μ  μ§‘ν•© μ—°μ‚°(ν•©μ§‘ν•©, ꡐ집합, μ°¨μ§‘ν•© λ“±)을 제곡.
  • λΉ λ₯Έ 검색과 μΆ”κ°€/μ‚­μ œκ°€ κ°€λŠ₯.

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

728x90