[Python] 파이썬 세트(Set) 자료형 - 집합연산, 메서드

2024. 3. 26. 23:19· Python
목차
  1. 1. 세트(Set) 자료형
  2. 2. 세트 자료형을 사용하는 이유
  3. 3. 집합연산
  4. 4. 세트 자료형의 메서드

1. 세트(Set) 자료형

  • 파이썬 세트 자료형은 중복을 허용하지 않고, 순서가 없는 자료형입니다(인덱싱, 슬라이싱 미지원)
  • 세트 자료형에 저장된 요소는 고유해야 하고, 숫자나 문자, 튜플이 요소가 될 수 있습니다.
  • 세트 자료형을 선언하는 방법은 2가지가 있는데, 'set()' 함수 또는 중괄호 '{}'를 사용하여 생성할 수 있습니다. 빈 집합을 생성할 때는 반드시 'set()' 함수를 사용해야 합니다.
  • 아래 코드블럭에서 세트 자료형 선언 예시를 살펴보겠습니다.
# 세트 생성
my_set = set()


# 세트 생성
my_set2 = {1, 2, 3, 4, 5}


# 세트 생성 및 자동 중복요소 제거
my_set3 = set([1, 2, 2, 3, 3, 4])
print(my_set3)    # {1,2,3,4} 출력

 

 

 

2. 세트 자료형을 사용하는 이유

  • 데이터의 중복을 제거하고 유니크한 요소만을 유지하길 원할 때
  • 수학적으로 집합 연산을 수행하고자 할 때
  • 요소의 존재 유뮤를 빠르게 확인하고자 할 때(세트 자료형은 요소 검색에 해시 테이블 사용)

 

 

3. 집합연산

  • 합집합(union): 두 집합의 모든 요소를 포함하는 집합을 반환합니다. 메서드 '.union()' 또는 연산자 '|'를 사용합니다.
a = {1, 2, 3}
b = {3, 4, 5}

print(a | b)  # {1, 2, 3, 4, 5}
print(a.union(b))  # {1, 2, 3, 4, 5}

 

 

  • 교집합(intersection): 두 집합에 공통으로 포함된 요소만을 포함하는 집합을 반환합니다. 메서드 '.intersection()' 또는연산자 '&'을 사용합니다.
a = {1, 2, 3}
b = {3, 4, 5}

print(a & b)  # {3}
print(a.intersection(b))  # {3}

 

 

  • 차집합(difference): 한 집합에는 포함되지만 다른 집합에는 포함되지 않는 요소들의 집합을 반환합니다. 먼저 나온 집합이 기준이 됩니다. 메서드 '.difference()' 또는 연산자 '-'를 사용합니다.
a = {1, 2, 3}
b = {3, 4, 5}

print(a - b)  # {1, 2}
print(a.difference(b))  # {1, 2}

 

 

  • 대칭차집합(symmetric difference): 두 집합 중 하나에는 포함되지만 두 집합 둘 다에는 포함되지 않는 요소들의 집합을 반환합니다. 메서드 '.symmetric_difference()' 또는 연산자 '^'를 사용합니다.
a = {1, 2, 3}
b = {3, 4, 5}

print(a ^ b)  # {1, 2, 4, 5}
print(a.symmetric_difference(b))  # {1, 2, 4, 5}

 

 

 

 

4. 세트 자료형의 메서드

  • .add(): 세트에 요소를 추가
  • .discard(): 세트에서 요소를 제거. 요소가 세트에 없어도 에러 발생하지 않음
  • .remove(): 세트에서 요소를 제거. 요소가 세트에 없으면 'Keyerror' 발생
  • .pop(): 세트에서 하나의 요소를 제거하고 반환(순서는 없지만 가장 앞에 있는 요소). 세트가 비어있으면 'Keyerror' 발생
# 세트 선언
my_set = {1, 2, 3}

# add() 사용 예시: 세트에 요소 추가
my_set.add(4)
print(my_set)    # {1, 2, 3, 4} 반환

# discard() 사용 예시: 세트에서 요소 제거 (없는 요소를 제거해도 에러 발생하지 않음)
my_set.discard(2)
print(my_set)    # {1, 2, 3} 반환
my_set.discard(10)    # 에러 발생하지 않음

# remove() 사용 예시: 세트에서 요소 제거 (없는 요소를 제거하려 하면 KeyError 발생)
my_set.remove(4)    # 이 줄을 실행하면 KeyError 발생

# pop() 사용 예시: 세트에서 하나의 요소를(순서는 없지만 가장 앞) 제거하고 반환
print(my_set.pop())    # 1 반환

'Python' 카테고리의 다른 글

[Python] 우선순위큐 구현 - 파이썬 heapq 모듈  (0) 2024.03.31
[Python] 리스트 내 특정 요소 개수 반환 - count() 메서드  (0) 2024.03.29
[Python] 파이썬 프로그램 실행 시간 측정 - time 모듈  (0) 2024.03.26
[Python] 특정 값이 처음으로 나타나는 인덱스 반환 - index()  (0) 2024.03.09
[Python] 원하는 기준으로 이차원 배열 정렬 - sort(), sorted() 및 람다함수  (2) 2024.03.01
  1. 1. 세트(Set) 자료형
  2. 2. 세트 자료형을 사용하는 이유
  3. 3. 집합연산
  4. 4. 세트 자료형의 메서드
'Python' 카테고리의 다른 글
  • [Python] 우선순위큐 구현 - 파이썬 heapq 모듈
  • [Python] 리스트 내 특정 요소 개수 반환 - count() 메서드
  • [Python] 파이썬 프로그램 실행 시간 측정 - time 모듈
  • [Python] 특정 값이 처음으로 나타나는 인덱스 반환 - index()
Hyper_
Hyper_
Hyper_
하이퍼의 아카이브
Hyper_
전체
오늘
어제
  • 분류 전체보기 (37)
    • Python (24)
    • Linux (6)
    • Network (3)
    • AWS (1)
    • Computer Science (1)
    • DB(SQL, NoSQL) (2)

블로그 메뉴

  • 글쓰기
  • 관리자
  • 홈
  • 방명록

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
Hyper_
[Python] 파이썬 세트(Set) 자료형 - 집합연산, 메서드
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.