본문 바로가기

[Python] 컬렉션 : 세트 자료형 (Set Type)

포근한 봄의 품 2025. 4. 5.
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정 수수료를 제공받습니다."

3가지 주요 특징

파이썬의 세트(Set) 자료형은 강력하고 유연한 컬렉션입니다. 이 자료형은 중복을 허용하지 않는 고유한 값들의 집합을 효율적으로 관리하며, 수학적 집합 연산을 간편하게 수행할 수 있도록 설계되었습니다. 파이썬 세트 자료형의 핵심 특징 3가지에 대해 자세히 살펴보겠습니다.

주요 특징 1: 중복 불허용 (Uniqueness)

세트의 가장 중요한 특징은 요소의 중복을 허용하지 않는다는 점입니다. 이는 데이터의 유일성을 보장해야 하는 경우에 유용합니다. 세트에 동일한 값을 여러 번 추가하더라도, 실제로는 하나의 값만 저장됩니다.

주요 특징 2: 순서 없음 (Unordered)

세트는 요소의 순서를 유지하지 않습니다. 따라서 인덱싱이나 슬라이싱과 같은 순서 기반의 접근 방식은 사용할 수 없습니다. 세트의 요소에 접근하려면 반복문이나 멤버십 테스트를 활용해야 합니다.

주요 특징 3: 집합 연산 (Set Operations)

세트는 합집합, 교집합, 차집합과 같은 기본적인 집합 연산을 효과적으로 지원합니다. 이는 데이터 분석, 알고리즘 구현, 문제 해결에 유용하게 활용될 수 있습니다. 파이썬은 이러한 연산을 위한 직관적인 연산자와 메서드를 제공합니다.

세트 자료형 특징 비교 분석

파이썬의 세트 자료형은 리스트(List) 및 튜플(Tuple)과 같은 다른 컬렉션 자료형과 차이점을 보입니다. 아래 표는 세트의 주요 특징을 다른 자료형과 비교하여 보여줍니다.

특징 세트 (Set) 리스트 (List) 튜플 (Tuple)
중복 허용
순서 유지
변경 가능성
인덱싱/슬라이싱

요약: 파이썬 세트 자료형은 중복을 허용하지 않고 순서가 없는 컬렉션으로, 집합 연산을 위한 도구를 제공합니다. 이러한 특징은 특정 프로그래밍 문제를 해결하는 데 도움이 됩니다.

세트 자료형, 마스터하기 위한 5가지 핵심 연산!

파이썬에서 세트(Set)는 매력적인 자료형입니다. 수학 시간에 배운 집합처럼, 중복을 허용하지 않고 순서가 없는 특별한 특성을 가집니다. 데이터 분석 시, 중복된 데이터를 제거하고 고유한 값만 추출해야 할 때 유용합니다. 세트를 다루기 위한 5가지 필수 연산을 알아볼까요?

쇼핑몰 데이터에서 특정 상품을 구매한 고객 ID를 추출해야 하는 상황에 유용합니다.

세트 연산 활용


1, 세트 생성 & 데이터 추가/삭제

  • 생성: s = set() 또는 s = {값1, 값2, ...} 로 간단하게!
  • 추가: s.add('값') 으로 추가, s.update([여러 값]) 으로 여러 개 추가도 가능합니다.
  • 삭제: s.remove('값') 또는 s.discard('값') 로 제거! remove는 없는 값을 지우려 하면 에러가 발생하지만, discard는 조용히 넘어갑니다.


2, 교집합(intersection) - 공통된 요소 찾기

두 세트 간의 공통된 요소만 뽑아내는 연산입니다. s1 & s2 또는 s1.intersection(s2) 로 구할 수 있습니다. 예를 들어, '파이썬'과 '자바' 책을 모두 읽은 사람들의 ID를 찾을 때 유용합니다.


3, 합집합(union) - 모든 요소 합치기!

두 세트의 모든 요소를 합쳐서 새로운 세트를 만드는 연산입니다. s1 | s2 또는 s1.union(s2) 로 계산할 수 있습니다. '파이썬' 또는 '자바' 책을 읽은 모든 사람들의 ID를 알고 싶을 때 사용하면 됩니다.


4, 차집합(difference) - 특정 요소 제외!

한 세트에서 다른 세트의 공통된 요소를 제외한 나머지를 구하는 연산입니다. s1 - s2 또는 s1.difference(s2) 로 얻을 수 있습니다. '파이썬' 책은 읽었지만 '자바' 책은 읽지 않은 사람들의 ID를 추출할 때 활용 가능합니다.


5, 형변환 - 세트의 변신!

세트는 리스트나 튜플로 변환해야 할 때가 있습니다. list(s) 로 리스트로, tuple(s) 로 튜플로 자유롭게 변환할 수 있습니다. 인덱싱이 필요할 땐 리스트나 튜플로 변환해서 사용하면 됩니다.

실전 사례

  1. 고객 분류: 구매 내역을 세트로 관리하여 특정 상품군을 구매한 고객들을 그룹화할 수 있습니다.
  2. 데이터 중복 제거: 로그 데이터에서 중복된 항목을 제거하여 분석 효율성을 높일 수 있습니다.
  3. 접속자 분석: 특정 시간대에 웹사이트에 접속한 사용자들을 세트로 관리하여 중복 접속자를 제외한 순 방문자 수를 파악할 수 있습니다.

세트는 유용한 자료형입니다. 이 5가지 연산만 안다면, 파이썬 컬렉션 작업이 더 즐거워질 것입니다.

세트 자료형 - 4가지 핵심 활용 예시

파이썬 컬렉션 중 하나인 세트(Set) 자료형을 사용하여 효율적인 코딩을 경험해보세요. 이 튜토리얼에서는 세트 자료형의 기본적인 생성, 요소 관리, 집합 연산, 형 변환 방법을 안내합니다. 세트는 중복을 허용하지 않고 순서가 없는 특징을 가집니다. 함께 자세히 알아보고 직접 코드를 작성하여 이해해 봅시다.


1, 세트 생성 및 요소 관리

첫 번째 단계: 세트 생성하기

세트 자료형은 set() 함수 또는 중괄호 {}를 사용하여 생성할 수 있습니다. 빈 세트를 생성할 때는 반드시 set() 함수를 사용해야 합니다. 중괄호만 사용할 경우 딕셔너리 타입으로 인식될 수 있습니다.

# 빈 세트 생성
s = set()
print(s, type(s))

# 초기값을 가진 세트 생성
s = {1, 2, 3}
print(s, type(s))

# 주의: s = {} 는 딕셔너리 타입입니다.

두 번째 단계: 요소 추가하기

세트에 요소를 추가할 때는 add() 메서드를 사용합니다. 여러 요소를 한 번에 추가하려면 update() 메서드를 사용하세요.

s = {1, 2, 3}

# 단일 요소 추가
s.add(4)
print(s)

# 여러 요소 추가
s.update([3, 4, 5])
print(s)

세 번째 단계: 요소 삭제하기

세트에서 특정 요소를 삭제할 때는 remove() 또는 discard() 메서드를 사용합니다. remove()는 삭제할 요소가 없으면 에러를 발생시키지만, discard()는 에러를 발생시키지 않습니다.

s = {'a', 'b', 'c', 'd'}

# 요소 삭제 (remove)
# s.remove('e') -> 에러 발생 (요소가 없을 경우)

# 요소 삭제 (discard) - 안전한 방법
s.discard('a')
print(s, type(s))

s.discard

목차


    댓글