Set 은..
hash table 을 기초로 한 데이터 구조로, 포함하고 있는 element를 빠르게 찾아내는 것에 최적화 되어있다.
element들의 중복을 없앨 때 유용할 때 사용할 수 있고,
a = [1,1,2,2,3,3,4,4]
print(set(a)) # {1,2,3,4}
교집합 합집합 차집합을 구할때에 매우 유용하게 사용할 수 있다.
a = [1,2,3,4,5,6]
b= [4,5,6,7,8,9]
s1 = set(a)
s2 = set(b)
print(s1)
print(s2)
# 교집합
print(s1&s2)
print(s1.intersection(s2))
# 합집합
print(s1 | s2)
print(s1.union(s2))
# 차집합
print(s1-s2)
print(s1.difference(s2))
print(s2-s1)
print(s2.difference(s1))
# add, update, remove
s1.add(7)
print(s1)
s1.update([8,9,10])
print(s1)
s1.remove(4)
print(s1)
Frozen sets 는 immutable이다. 그러니까 얘는 수정은 물론 추가(add)도 불가능하다. 왜 어디에 쓰는지는 아직 잘 모르겠다.
a = [1,2,3,4]
b=frozenset(a)
b.add(5) # 'frozenset' object has no attribute 'add'
b.update([5,6]) # 'frozenset' object has no attribute 'update'