본문 바로가기
판다스/기초 파이썬

[python] 3.9. 자료형 - 집합

by 김판다t 2024. 11. 7.

데이터 분석 입문을 위한 기초적인 파이썬 내용을 다룹니다. 데이터 분석은 주로 파이썬의 라이브러리인 판다스를 활용해 이루어지며, 이를 위해 기본적인 파이썬 개념에 대한 이해가 필요합니다. 하지만 이것은 파이썬을 완벽하게 숙달해야 한다는 의미는 아닙니다. 그렇기에 판다스와 데이터 분석에 입문할 수 있도록 핵심 파이썬 개념을 간략하게 제공할 것입니다.

 

 

3.9. 자료형 - 집합

집합 자료형

 

집합 자료형(set)은 중복을 제거하고 집합 연산을 수행하는 데 유용한 자료형입니다. 집합은 다음과 같은 특징을 지닙니다.

  • 중복을 허용하지 않음: 집합의 원소는 모두 유일해야 합니다. 예를 들어 {1, 2, 2, 3}은 {1, 2, 3}으로 저장됩니다.
  • 순서가 없음: 집합은 순서를 유지하지 않으므로 인덱스를 통해 접근할 수 없습니다. 따라서 리스트와 달리, 집합에서는 특정 위치의 원소를 가져오는 것이 불가능합니다.

파이썬에서 집합 자료형을 생성하는 방법에는 중괄호를 사용하는 방법과 set 함수를 사용하는 방법이 있습니다. 예를 들어, {1, 2, 3}은 숫자 1, 2, 3을 원소로 가진 집합 자료형을 나타내며, set([1, 2, 3]) 역시 동일한 집합 자료형을 생성합니다. 그러나 주의할 점은 빈 중괄호는 빈 집합이 아닌 빈 딕셔너리를 생성하므로, 빈 집합 자료형을 만들 때는 반드시 set 함수를 사용해야 합니다.

# 중괄호를 이용하여 집합 자료형 생성
set1 = {1, 2, 3} # 결과: {1, 2, 3}

# set 함수를 이용하여 리스트로부터 집합 자료형 생성
set2 = set([1, 2, 3]) # 결과: {1, 2, 3}

# 빈 집합 자료형은 중괄호가 아닌 set 함수를 이용하여 생성해야 함
empty_set = set() # 결과: {}

 

집합 자료형의 주요 연산

 

파이썬의 집합 자료형(set)은 다양한 집합 연산을 지원합니다.

  • 합집합(union): 두 집합의 모든 원소를 합친 새로운 집합을 반환합니다. 예: a | b 또는 a.union(b)
  • 교집합(intersection): 두 집합의 공통 원소로 구성된 집합을 반환합니다. 예: a & b 또는 a.intersection(b)
  • 차집합(difference): 첫 번째 집합에는 있지만 두 번째 집합에는 없는 원소들로 구성된 집합을 반환합니다. 예: a - b 또는 a.difference(b)
  • 대칭 차집합(symmetric_difference): 두 집합에 각각 존재하지만 공통적이지 않은 원소들로 구성된 집합을 반환합니다. 예: a ^ b 또는 a.symmetric_difference(b)
집합 자료형의 활용 사례

 

집합 자료형은 데이터의 중복을 제거하는 데 유용합니다. 리스트를 집합 자료형으로 변환하면 중복된 값이 자동으로 제거됩니다. 

# 중복된 값이 있는 리스트
list1 = [1, 1, 1, 1, 2, 2]

# 집합 자료형을 사용하여 중복 제거
set1 = set(list1)
print(set1)  # 결과: {1, 2}

 

또한 차집합을 이용하면 특정 원소를 데이터에서 손쉽게 제거할 수 있습니다.

# 리스트 list2를 생성
list2 = [5, 2, 3, 4, 1]

# list2를 집합으로 변환해 차집합으로 2, 3을 제거
set(list2) - {2, 3}  # 결과: {1, 4, 5}

 

다만 집합 자료형은 순서가 없기 때문에 기존 배열과는 달리 정렬된 결과가 반환됩니다. 따라서 정렬이 이미 되어 있거나, 데이터의 순서가 중요하지 않거나, 이후로 정렬이 필요한 상황에서는 집합 자료형을 사용해 특정 원소를 제거할 수 있습니다.

 

판다스와 집합 자료형

 

※ 판다스는 기초 파이썬과 직접 관련이 없으므로, 추후 판다스를 학습한 후에 확인하셔도 됩니다.

집합 자료형의 중복 제거와 집합 연산은 유용하지만, 데이터 분석 라이브러리인 판다스에서는 거의 사용되지 않습니다. 판다스의 객체는 중복을 제거하거나 집합 연산을 수행하기 위한 다양한 편리한 기능을 제공하기 때문입니다. 따라서 집합 자료형은 이러한 기능이 있다는 정도만 알고 넘어가도 충분합니다. 


 

유튜브에서 판다스 강의 중입니다.

https://www.youtube.com/@KimPandas