[Python3] 데이터 타입 - Set

Alexandria·2023년 8월 31일
0

Python3 Basic

목록 보기
9/19
post-thumbnail

1. Set

set 변수는 가변(Mutable) 자료형 중 하나이며, 중복이 허용되지 않는 값들의 집합을 나타내는 자료형입니다.

set의 요소는 불변(Immutable) 자료형만 포함할 수 있습니다.

set는 Sequence 자료형이 아니므로, 인덱싱(Indexing)과 슬라이싱(Slicing)이 불가능합니다.

💡 Sequence는 여러 개의 데이터들이 연속적으로 이루어진 자료형이며 str, list, tuple이 해당됩니다. Immutable은 데이터를 변경할 수 없는 자료형이며 tuple, string 등이 해당됩니다.

다음과 같이 set() 혹은 {}를 이용하여 생성할 수 있습니다.

a = set()
print(type(a)) # <class 'set'>

a = {1,2}
print(type(a)) # <class 'set'>

💡 중괄호({})에 아무 값도 들어있지 않다면, dict로 인식하게 됩니다.

set()을 사용하면 코드를 봤을 때 {}보다는 이해하기 쉬우며,

set()보다 {}를 사용하면 성능 면에서 이점이 있습니다.

문자열을 전달 시 두 방법의 결과가 상이하므로, 주의하며 사용합니다.

print(set("Hello")) # {'l', 'H', 'e', 'o'}
print({"Hello"})    # {'Hello'}

2. Operator

set은 교집합, 합집합, 차집합을 구할 때 강점이 있습니다.

교집합&으로 사용하거나 intersection 함수를 사용하면 구할 수 있습니다.

a = set([1,2,3,4,5])
b = set([4,5,6,7,8])
print(a & b)            # {4, 5}
print(a.intersection(b))# {4, 5}

합집합|으로 사용하거나 union 함수를 사용하면 구할 수 있습니다.

a = set([1,2,3,4,5])
b = set([4,5,6,7,8])
print(a | b)        # {1, 2, 3, 4, 5, 6, 7, 8}
print(a.union(b))   # {1, 2, 3, 4, 5, 6, 7, 8}

차집합-으로 사용하거나 difference 함수를 사용하면 구할 수 있습니다.

a = set([1,2,3,4,5])
b = set([4,5,6,7,8])
print(a - b)            # {1, 2, 3}
print(b - a)            # {8, 6, 7}
print(a.difference(b))  # {1, 2, 3}
print(b.difference(a))  # {8, 6, 7}

3. Functions

add를 사용하면 1개의 요소를 set에 추가할 수 있습니다.

a = set([1,2,3,5])
a.add(4)
print(a) # {1, 2, 3, 4, 5}

update를 사용하면 set 혹은 여러 개의 요소를 set에 추가할 수 있습니다.

a = set([1,2,3,5])
b = [4,5,6,7]
a.update(b)
print(a) # {1, 2, 3, 4, 5, 6, 7}

remove를 사용하면 특정 요소를 삭제할 수 있습니다.

a = set([1,2,3,5])
a.remove(3)
print(a) # {1, 2, 5}
profile
IT 도서관

0개의 댓글