본문 바로가기

Programming/[Python]

[Python/점프 투 파이썬 복습] 2. (4) Python 프로그래밍 자료형(집합 자료형)

복습용/초보자 참고를 목적으로 포스팅합니다.

 

최근 들어 프로그래밍 언어들 중 직관적인 표현으로 코딩이 가능한 Python이 인기를 끌고 있습니다.

 

코드 구성의 가독성이 타 언어 대비 뛰어나고, C/C++/JAVA 에서 구현 가능한 모든 것들을 Python에서도 만들 수 있습니다.

데이터 분석부터 머신러닝, 딥러닝 등 다양한 분야에서 활용 가능한 언어 Python 지금부터 차근차근 공부해봅시다.

 

 

2. (4) 자료형(집합)

 

2. 6 집합 자료형

 

집합 자료형은 집합에 관련된 것들을 쉽게 처리하기 위해 만들어진 자료형으로,
파이썬 초기부터 지원되기 시작한 자료형입니다. 

집합 자료형은 set키워드를 이용해 만들 수 있습니다.

# 집합 자료형 예시

s1 = set([1, 2, 3])
s1 # {1, 2, 3}

s2 = set("Hello")
s2 # {'e', 'l', 'o', 'H'}

변수 s2의 출력 결과를 보면 알 수 있듯이,

집합 자료형은 중복을 허용하지 않고, 순서가 없습니다(Unordered).

중복을 허용하지 않기 때문에 'l'이 하나 생략되고,

순서가 없기 때문에 인덱싱이 불가능합니다.

 

하지만 집합 자료형도 인덱싱이 가능하게끔 처리할 수 있습니다.

예시와 같이 집합 자료형을 리스트와 튜플로 변환하면 인덱싱이 가능해집니다.

s1 = set([1, 2, 3])

# 리스트로 변환하여 인덱싱하기

lst = list(s1)
lst # [1, 2, 3]

lst[0] # 1

# 튜플로 변환하여 인덱싱하기

tup = tuple(s1)
tup # (1, 2, 3)

tup[0] # 1

집합 자료형의 활용

 

집합 자료형을 어떻게 활용하는지 예시를 통해 알아보겠습니다.

s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])

# 교집합 구하기

s1 & s2 # {4, 5, 6}

s1.intersection(s2) # {4, 5, 6}

# 합집합 구하기

s1 | s2 # {1, 2, 3, 4, 5, 6, 7, 8, 9}

s2.union(s2) # {1, 2, 3, 4, 5, 6, 7, 8, 9}

# 차집합 구하기

s1 - s2 # {1, 2, 3}

s2 - s1 # {8, 9, 7}

s1.difference(s2) # {1, 2, 3}

s2.difference(s1) # {8, 9, 7}

예시처럼 '&, |, -' 기호를 통해 교집합, 합집합, 차집합을 구할 수 있고

함수를 사용해도 같은 결과를 갖는 것을 알 수 있습니다.


집합 자료형 관련 함수들

 

s1 = set([1, 2, 3])

함수 설명
s1.add() 해당 집합에 값을 추가
s1.update() 해당 집합에 여러 개의 값을 한꺼번에 추가
s1.remove() 해당 집합의 특정 값을 제거