π― 1. μ
κΈ°λ³Έ κ°λ
βββ
μ
μ νΉμ§
# 1. μ€λ³΅ μμ (μλμΌλ‘ μ€λ³΅ μ κ±°)
s = {1, 2, 2, 3, 3, 3}
print(s) # {1, 2, 3}
# 2. μμ μμ (μΈλ±μ€ μ κ·Ό λΆκ°)
s = {3, 1, 2}
# s[0] # TypeError! μΈλ±μ€ μ κ·Ό λΆκ°
# 3. λ³κ²½ κ°λ₯ (mutable) - μμ μΆκ°/μμ κ°λ₯
s.add(4)
s.remove(1)
# 4. ν΄μ κ°λ₯ν κ°μ²΄λ§ μ μ₯ κ°λ₯
s = {1, 'hello', (1, 2)} # β
OK
# s = {[1, 2]} # β TypeError! 리μ€νΈλ λΆκ°
# 5. λΉ λ₯Έ κ²μ O(1)
print(3 in s) # True, λ§€μ° λΉ λ¦!
μ
μμ±
# λ°©λ² 1: μ€κ΄νΈ
s = {1, 2, 3, 4, 5}
# λ°©λ² 2: set() ν¨μ
s = set([1, 2, 3, 4, 5])
s = set('hello') # {'h', 'e', 'l', 'o'}
# λΉ μ
(μ£Όμ!)
s = set() # β
λΉ μ
# s = {} # β μ΄κ±΄ λΉ λμ
λ리!
# 리μ€νΈ β μ
(μ€λ³΅ μ κ±°)
arr = [1, 2, 2, 3, 3, 3, 4]
s = set(arr) # {1, 2, 3, 4}
# μ
μ»΄ν리ν¨μ
s = {x**2 for x in range(1, 6)}
# {1, 4, 9, 16, 25}
μ
κΈ°λ³Έ λ©μλ
s = {1, 2, 3}
# μΆκ°
s.add(4) # {1, 2, 3, 4}
s.add(2) # {1, 2, 3, 4} (μ€λ³΅ 무μ)
# μ¬λ¬ κ° μΆκ°
s.update([5, 6, 7]) # {1, 2, 3, 4, 5, 6, 7}
# μ κ±°
s.remove(3) # {1, 2, 4, 5, 6, 7}
# s.remove(10) # KeyError!
s.discard(10) # μλ¬ μ λ¨ (μμ΄λ OK)
# μμ μ κ±°
val = s.pop() # μμμ κ° μ κ±°νκ³ λ°ν
# μ 체 μμ
s.clear() # set()
# κΈΈμ΄
s = {1, 2, 3, 4, 5}
len(s) # 5
π― 2. μ
μ°μ° (μ½ν
νμ!) βββ
ν©μ§ν© (Union)
a = {1, 2, 3, 4}
b = {3, 4, 5, 6}
# λ°©λ² 1: | μ°μ°μ
union = a | b
print(union) # {1, 2, 3, 4, 5, 6}
# λ°©λ² 2: union() λ©μλ
union = a.union(b)
print(union) # {1, 2, 3, 4, 5, 6}
# μ¬λ¬ μ
μ ν©μ§ν©
c = {7, 8}
union = a | b | c
# {1, 2, 3, 4, 5, 6, 7, 8}
κ΅μ§ν© (Intersection) βββ
a = {1, 2, 3, 4}
b = {3, 4, 5, 6}
# λ°©λ² 1: & μ°μ°μ
inter = a & b
print(inter) # {3, 4}
# λ°©λ² 2: intersection() λ©μλ
inter = a.intersection(b)
print(inter) # {3, 4}
# μ¬λ¬ μ
μ κ΅μ§ν©
c = {3, 7, 8}
inter = a & b & c
# {3}
μ°¨μ§ν© (Difference)
a = {1, 2, 3, 4}
b = {3, 4, 5, 6}
# a - b (aμλ§ μλ κ²)
diff = a - b
print(diff) # {1, 2}
# b - a (bμλ§ μλ κ²)
diff = b - a
print(diff) # {5, 6}
# difference() λ©μλ
diff = a.difference(b)
λμΉμ°¨μ§ν© (Symmetric Difference)
a = {1, 2, 3, 4}
b = {3, 4, 5, 6}
# λ μ€ νλμλ§ μλ κ² (κ΅μ§ν© μ μΈ)
sym_diff = a ^ b
print(sym_diff) # {1, 2, 5, 6}
# symmetric_difference() λ©μλ
sym_diff = a.symmetric_difference(b)
# κ°μ μλ―Έ
sym_diff = (a | b) - (a & b)
# {1, 2, 5, 6}
λΆλΆμ§ν©/μμμ§ν© 체ν¬
a = {1, 2, 3}
b = {1, 2, 3, 4, 5}
# aκ° bμ λΆλΆμ§ν©?
print(a.issubset(b)) # True
print(a <= b) # True
# aκ° bμ μ§λΆλΆμ§ν©? (κ°μ§ μμ λΆλΆμ§ν©)
print(a < b) # True
# bκ° aμ μμμ§ν©?
print(b.issuperset(a)) # True
print(b >= a) # True
# bκ° aμ μ§μμμ§ν©?
print(b > a) # True
# μλ‘μ (κ΅μ§ν© μμ)?
a = {1, 2, 3}
c = {4, 5, 6}
print(a.isdisjoint(c)) # True