반응형

Python에서 set 자료형은 순서가 없고, 중복되지 않는 요소들의 집합을 나타내는 객체입니다. set 객체는 집합 연산(union, intersection, difference, symmetric difference)을 지원하며, 관련된 함수들(add, remove, discard, clear, pop, ...)를 지원합니다.

  • set 객체는 순서를 가지지 않으며, 인덱싱, 슬라이싱 기능을 지원하지 않음
  • set 객체는 수학적 집합의 특성을 가지며, 중복된 요소를 가질 수 없음
  • set은 변경 가능(mutable) 객체
  • set 객체는 요소들의 순서가 없기 때문에, 특정 요소가 있는지 확인하는 것은 O(1) 의 시간 복잡도
# set 생성
s = set([1, 2, 3, 4, 5])
print(s) # {1, 2, 3, 4, 5}

# set 추가
s.add(6)
print(s) # {1, 2, 3, 4, 5, 6}

# set 제거
s.remove(6)
print(s) # {1, 2, 3, 4, 5}

# set 요소 포함 여부 확인
print(3 in s) # True

또한, set 객체는 {}로도 생성 가능합니다.

s = {1, 2, 3}
print(s) # {1, 2, 3}

set 자료형을 list로 변환하려면 list() 함수를 사용합니다. list() 함수는 입력된 객체를 list 자료형으로 변환하여 Return합니다.

s = {1, 2, 3, 4, 5}
lst = list(s)
print(lst) # [1, 2, 3, 4, 5]
  • list() 함수로 변환된 리스트는 원본 set 객체와 다른 메모리 공간을 사용
  • set 객체를 list로 변환하면 set의 순서를 유지하는 것이 아니라 순서가 보장되지 않음
  • 만약 set의 순서를 유지하고 싶다면 python 3.6 이상에서는 dict_keys, dict_values, dict_items를 이용하여 순서를 유지하면서 변환 가능

 

반응형