Hey Tech

[파이썬] 집합(Set) 자료형에 대해 알아보자! 본문

SW 개발/Python

[파이썬] 집합(Set) 자료형에 대해 알아보자!

Tony Park (토니) 2021. 4. 19. 10:49
728x90
반응형

안녕하세요, 오늘은 파이썬 집합(Set) 자료형에 대해 알아봅니다.

그럼 바로 시작하죠!

목차

1.  집합 자료형이란?
2.  집합 자료형 생성 및 초기화
3.  집합 자료형 관련 함수
4.  집합 자료형의 연산

1.  집합 자료형이란?

집합(Set) 자료형은 수학에서 자주 사용되는 집합을 처리하기 위한 자료형이며 아래와 같은 특징이 있습니다.

 

- 중북 된 원소를 가질 수 없다.

- 원소 간의 순서를 고려하지 않는다.

 

위와 같은 특징 덕분에, 예를 들어 특정 데이터가 어떤 연산을 중복으로 수행했는지 여부를 확인하는 데 유용한 자료형입니다.

2.  집합 자료형 생성 및 초기화

집합 자료형을 생성하고 초기화하는 방법은 크게 2가지가 있습니다.

(1) set() 활용

# 집합 자료형 생성 및 초기화1: set() 활용
dataset = set([1, 2, 2, 2, 3, 4, 5, 5, 6])
print(dataset) # {1, 2, 3, 4, 5, 6}

set() 안에 원소를 직접 입력하거나 2개 이상의 원소를 입력할 경우 리스트를 활용하여 초기화할 수 있습니다.

(2) 중괄호 {} 활용

# 집합 자료형 생성 및 초기화2: 중괄호{} 활용
dataset = {1, 2, 2, 2, 3, 4, 5, 5, 6}
print(dataset) # {1, 2, 3, 4, 5, 6}

리스트 자료형이 대괄호로 원소를 감싸 자료형을 생성 및 초기화했다면 집합 자료형은 중괄호로 원소를 감싸 자료형을 생성하고 초기화할 수 있습니다.

3.  집합 자료형 관련 함수

# 집합 자료형 생성 및 초기화
dataset = set([1, 2, 3, 4])
print(dataset) # {1, 2, 3, 4}

위와 같은 집합 자료형이 있을 때 새로운 원소 1개 또는 여러 개를 추가하는 방법과 특정 값의 원소를 삭제하는 방법에 대해 알아보도록 하겠습니다.

(1) add(): 새로운 원소 1개 추가하기

# (1) 새로운 원소 1개 추가
dataset.add(100)
print(dataset) # {1, 2, 3, 4, 100}

새로운 원소 1개를 추가할 때는 add() 함수를 사용하면 됩니다. 괄호 안에 추가할 원소를 입력하면 됩니다.

(2) update(): 새로운 원소 2개 이상 추가하기

# (2) 2개 이상의 새로운 원소 추가
dataset.update([777, 999])
print(dataset) # {1, 2, 3, 4, 100, 777, 999}

새로운 원소를 2개 이상 한꺼번에 추가하고자 할 때는 update() 함수를 사용하면 됩니다. 괄호 안에 리스트 자료형을 활용해 여러 개의 원소를 입력해 주면 됩니다.

(3) remove(): 특정 값의 원소 1개 삭제하기(에러 처리 가능)

# (3) 특정 값의 원소 1개 삭제
dataset.remove(999)
print(dataset) # {1, 2, 3, 4, 100, 777}

remove() 함수를 사용하면 특정 원소를 삭제할 수 있습니다. 특히 삭제하고자 하는 원소가 없을 때는 에러가 출력됩니다. 에러 처리가 필요할 때는 remove() 함수를 사용하시면 됩니다.

(4) discard(): 특정 값의 원소 1개 삭제하기(에러 처리 X)

# (4) 특정 값의 원소 1개 삭제(에러 처리 X)
dataset.remove(999)
print(dataset) # {1, 2, 3, 4, 100, 777}

discard() 함수는 remove() 함수와 마찬가지로 특정 원소 1개를 삭제하는 메서드입니다. 단, 차이점은 삭제하고자 하는 원소가 없어도 에러가 발생하지 않는다는 것입니다.

4.  집합 자료형의 연산

기본적인 집합 연산으로는 합집합, 교집합, 차집합 연산이 있으며, 파이썬은 이러한 기본적인 집합 연산을 특정 연산자를 활용해 지원하고 있습니다. 아래 2개의 집합이 있다고 가정해서 합집합, 교집합, 차집합 계산 방법에 대해 소개해 드리겠습니다.

set_a = {1, 2, 4, 5, 7, 10}
set_b = {3, 4, 5, 9, 10}

(1) 합집합

# (1) 합집합
print(set_a | set_b) # {1, 2, 3, 4, 5, 7, 9, 10}

합집합 계산은 '|' 연산자를 활용합니다.

(2) 교집합

# (2) 교집합
print(set_a & set_b) # {10, 4, 5}

교집합 계산은 '&' 연산자를 활용합니다.

(3) 차집합

# (3) 차집합
print(set_a - set_b) # {1, 2, 7}

차집합 계산은 '-' 연산자를 활용합니다.


포스팅 내용에 오류가 있을 경우 댓글 남겨주시면 감사드리겠습니다.

그럼 오늘도 즐거운 하루 보내시길 바랍니다 :-)

고맙습니다!

728x90
반응형