μ€λμ 컬λ μ
νμ
μ€ νλμΈ μΈνΈ(set)μ λν΄ μμ보μ.

μΈνΈ(set)λ μ€λ³΅λμ§ μμ νλͺ©λ€μ 컬λ μ μ΄λ€. μ€κ΄νΈ({})μ set(리μ€νΈ) ννμ ν¨μλ‘ μμ±ν μ μλ€.
s1 = {1, 3, 5, 7}
print(s1) # μΆλ ₯: {1, 3, 5, 7}
print(type(s1)) # μΆλ ₯: <class 'set'>
s2 = {}
print(s2) # μΆλ ₯: {}
print(type(s2)) # μΆλ ₯: <class 'dict'>
# λ°μ΄ν°κ° μμΌλ©΄ λμ
λλ¦¬λ‘ μΈμ
s3 = set([1, 3, 5, 7])
print(s3) # μΆλ ₯: {1, 3, 5, 7}
print(type(s3)) # μΆλ ₯: <class 'set'>
li1 = [1, 2, 3, 4]
print(type(li1)) # μΆλ ₯: <class 'list'>
s4 = set(li1)
print(type(s4)) # μΆλ ₯: <class 'set'>
리μ€νΈμ μ€λ³΅ λ°μ΄ν°λ₯Ό μ κ±°νκ³ μΆμΌλ©΄ setλ‘μ λ³νμ ν΅ν΄ κ°λ¨νκ² μ€λ³΅ λ°μ΄ν°λ€μ μ κ±°ν μ μλ€.
s5 = {1, 3, 5, 3, 7, 9, 1, 5, 10, 7}
print(s5) # μΆλ ₯: {1, 3, 5, 7, 9, 10}
li2 = [1, 3, 5, 3, 7, 9, 1, 5, 10, 7]
s6 = set(li2)
print(s6) # μΆλ ₯: {1, 3, 5, 7, 9, 10}
add() λ©μλλ μΈνΈμ μμλ₯Ό μΆκ°νλ€.
s1 = {1, 3, 5, 7}
s1.add(2)
s1.add(4)
s1.add(3)
print(s1) # μΆλ ₯: {1, 2, 3, 4, 5, 7}
update() λ©μλλ μΈνΈμ μ¬λ¬ κ°μ μμλ₯Ό μΆκ°νλ€.
s1 = {1, 3, 5, 7}
s1.update([2, 4, 3])
print(s1) # μΆλ ₯: {1, 2, 3, 4, 5, 7}
remove()λ μΈνΈμ μμλ₯Ό μ κ±°νλ€. λ¨, μΈνΈμ ν΄λΉ μμκ° μμΌλ©΄ μλ¬κ° λ°μνλ€.
s1 = {1, 3, 5, 7}
s1.remove(3)
print(s1) # μΆλ ₯: {1, 5, 7}
s1.remove(4) # KeyError: 4
remove()μ λ§μ°¬κ°μ§λ‘ μμλ₯Ό μ κ±°νμ§λ§, μμκ° μμ΄λ μλ¬κ° λ°μνμ§ μλλ€.
s1 = {1, 3, 5, 7}
d1.discard(3)
print(s1) # μΆλ ₯: {1, 5, 7}
s1.discard(4)
print(s1) # μΆλ ₯: {1, 5, 7}
πΉ: κ·ΈλΌ κ·Έλ₯ discard()λ₯Ό μ°λ©΄ λμ§ μ€λ₯κ° λ¨λ remove()λ μ μ¬μ©νλμ!!!!!
-> removeμ discardλ μν©μ λ°λΌ ꡬλΆλμ΄ μ°μΈλ€. μμκ° μμ΄λ μκ΄μμ΄ μ½λλ₯Ό μ§ννκ³ μΆλ€λ©΄ discardλ₯Ό μ°λ©΄ λμ§λ§, μμκ° μλμ§ μλμ§ μμμΌνκ±°λ μ€λ₯ μ²λ¦¬λ¬Έμ μ¬μ©ν λ removeλ₯Ό μ¬μ©νλ©΄ λλ€.
μΈνΈλ₯Ό 볡μ¬νλ λ©μλμ΄λ€. λ μΈνΈ κ° μμλ κ°μ§λ§ λ©λͺ¨λ¦¬ μ£Όμκ° λ¬λΌμ§λ€.
s1 = {1, 3, 5, 7}
s2 = s1.copy()
print(s1) # μΆλ ₯: {1, 3, 5, 7}
print(s2) # μΆλ ₯: {1, 3, 5, 7}
print(id(s1)) # μΆλ ₯: 133746842319360
print(id(s2)) # μΆλ ₯: 133746842320032
νμ΄μ¬μμμ setλ μ§ν©μμ μ λνλ€. λ°λΌμ μ§ν© κ³μ°μ΄ κ°λ₯νλ€. setμ μ§ν© κ³μ°λ€μ λν΄ μμ보μ.
ν©μ§ν©μ κ³μ°νλ€. μ°μ°μ | κ³Ό λμΌνλ€.
s1 = {10, 20, 30, 40, 50}
s2 = {30, 40, 50, 60, 70}
result1 = s1.union(s2)
print(result1) # μΆλ ₯: {70, 40, 10, 50, 20, 60, 30}
result2 = s1 | s2
print(result2) # μΆλ ₯: {70, 40, 10, 50, 20, 60, 30}
κ΅μ§ν©μ κ³μ°νλ€. μ°μ°μ & μ λμΌνλ€.
s1 = {10, 20, 30, 40, 50}
s2 = {30, 40, 50, 60, 70}
result1 = s1.intersection(s2)
print(result1) # μΆλ ₯: {40, 50, 30}
result2 = s1 & s2
print(result2) # μΆλ ₯: {40, 50, 30}
μ°¨μ§ν©μ κ³μ°νλ€. μ°μ°μ - μ λμΌνλ€.
s1 = {10, 20, 30, 40, 50}
s2 = {30, 40, 50, 60, 70}
result1 = s1.difference(s2)
print(result1) # μΆλ ₯: {10, 20}
result2 = s1 - s2
print(result2) # μΆλ ₯: {10, 20}
λμΉ μ°¨μ§ν©μ κ³μ°νλ€. μ°μ°μ ^ μ λμΌνλ€.
s1 = {10, 20, 30, 40, 50}
s2 = {30, 40, 50, 60, 70}
result1 = s1.symmetric_difference(s2)
print(result1) # μΆλ ₯: {20, 70, 10, 60}
result2 = s1 ^ s2
print(result2) # μΆλ ₯: {20, 70, 10, 60}
setλ μμκ° μλ μλ£νμ΄κΈ° λλ¬Έμ λ°μ΄ν°λ₯Ό μμλλ‘ μ λ ¬νκ³ μΆμΌλ©΄ 리μ€νΈλ‘ λ³ν ν sort, sortedλ₯Ό μ¬μ©νλ©΄ λλ€.
result = list(result2) result.sort() print(result) # μΆλ ₯: [10, 20, 60, 70]