Set 은..

  • unordered (인덱스 없음)
  • iterable (순회 가능)
  • not allowing duplicated elements (요소 간의 중복 불가)
  • mutable (요소 수정 가능)

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'

geeksforgeeks - Sets in Python

profile
Frontend Developer, JamStack, Ethereum

0개의 댓글