[Python] Set(μ )
νμ΄μ¬μμ μ§ν©μ ꡬννκ³ μΆμ λ ?!
Set μ μ΄μ©νλ©΄ λ©λλ€. νμ΄μ¬μμλ setμ΄λΌλ μ§ν© μλ£κ΅¬μ‘°λ₯Ό μ 곡ν©λλ€.
μ§ν©μ set( ) κ³Ό κ°μ΄ μ΄κΈ°ν ν μ μμ΅λλ€.
set μΈμ μ¬μ©νλ©΄ μ’μκΉ!?
μ§ν©μ μ΄λ΄ λ μ¬μ©νλ©΄ μ’μ΅λλ€.
1. λ°μ΄ν°μ μ€λ³΅μ΄ μμ΄λ λ λ
μ§ν©μ λ΄κΈ΄ λ°μ΄ν°λ€μ λͺ¨λ μ λν¬ ν©λλ€. μ¦, μ§ν©μ 5λ₯Ό 2λ² λ£μ΄λ μ§ν©μ μμ μ΄ κ°μ§ μμ 5λ 1κ°λΌκ³ μκ°ν©λλ€.
2. λ€λ£¨λ λ°μ΄ν°μ μ½μ /μμ /κ²μ¬κ° μμ£Ό μΌμ΄ λ λ νΉν λ€λ£¨λ λ°μ΄ν°κ° μ μκ° μλ λ
μ«μν λ°μ΄ν°λ listλ₯Ό μ¬μ©νμ¬ indexλ₯Ό ν΅ν΄ μ κ·Όν μ μμ΅λλ€. νμ§λ§ λ¬Έμμ΄,λ± λ¦¬μ€νΈμμ indexλ‘ νμ©ν μ μλ λ°μ΄ν°λ₯Ό λΉ λ₯΄κ² νμμμλ setμ μ΄μ©νλ©΄ μ’μ΅λλ€.
μλ₯Ό λ€μ΄, 리μ€νΈμ 'aaa'μμκ° μλμ§ μμλ΄λ €λ©΄ O(N)μ΄ κ±Έλ¦¬μ§λ§ μ§ν©μ O(1)μ΄ μμλ©λλ€.
3. μνμ μΌλ‘ κ΅μ§ν©, μ°¨μ§ν©, ν©μ§ν©μ ꡬν΄μΌν λ
νμ΄μ¬μ μ§ν©μμλ μνμμμ μ§ν©μ΄ κ°μ§ λλΆλΆμ κΈ°λ₯μ μ 곡ν©λλ€.
setμ μκ°λ³΅μ‘λ
Operation | Time Complexity |
νμ "aaa" in myset | O(1) |
μ κ±° myset.remove | O(1) |
ν©μ§ν© set1 | set2 | O(len(set1)+ len(set2)) |
κ΅μ§ν© set1 & set2 | O(min(len(set1), len(set2)) |
μ°¨μ§ν© set1 - set2 | O(len(set1)) |
λμΉμ°¨ set1 ^ set2 | O(len(set1)) |
λμΉμ°¨ = ν©μ§ν© - κ΅μ§ν©
set μ¬μ©μμ μ£Όμν μ
hashable νμ λ§ μ§ν©μ μμλ‘ λ£μ μ μμ΅λλ€.
- hashable νμ : int, float, decimal, bool, string, tuple, frozenset, λ±
- non - hashable νμ : list, dict,set, μ μ κ° λ§λ ν΄λμ€, λ±
set μ¬μ©λ²
π Init
set ν¨μλ₯Ό νΈμΆνλ©΄ λΉ μ§ν©μ μ μΈν μ μμ΅λλ€.
# λΉ μ§ν© μμ±νκΈ°
empty_set = set()
empty_set # set()
# νΉμ μμλ₯Ό κ°μ§λ μ§ν© μ μΈνκΈ°
my_set = set([1, 2, 3, 1, 2, 3])
my_set # {1,2,3}
π Add
μ§ν©μ μμλ₯Ό λ£μ λλ add λ©μλλ₯Ό μ΄μ©ν©λλ€.
λ¨ hashable νμ (int, float, string, λ± , list XX)λ§ μ§ν©μ λ£μ μ μλ€λ κ²μ μ£Όμν΄μΌν©λλ€!
# κ° μ§μ΄λ£κΈ°
my_set = set()
my_set.add(3)
my_set.add('λλ')
my_set # {3,'λλ'}
π Delete
μ§ν©μμ νΉμ μμλ₯Ό μ§μ°λ €λ©΄ remove λ©μλλ₯Ό μ΄μ©ν©λλ€.
# μμ μ κ±° μμ
my_set = set([1,2,3,4,5])
my_set.remove(1)
my_set # {2,3,4,5}
π ν©μ§ν© |
# ν©μ§ν©: | λ₯Ό μ¬μ©
set1 = set([1,2,3,4,5])
set2 = set([4,5,6,7,8])
set1 | set2 # {1, 2, 3, 4, 5, 6, 7, 8}
π μ°¨μ§ν© -
# μ°¨μ§ν©: - λ₯Ό μ¬μ©
set1 = set([1,2,3,4,5])
set2 = set([4,5,6,7,8])
set1 - set2 # {1,2,3}
π κ΅μ§ν© &
# κ΅μ§ν©: & λ₯Ό μ¬μ©
set1 = set([1,2,3,4,5])
set2 = set([4,5,6,7,8])
set1 & set2 #{4,5}
μ°Έκ³