복습용/초보자 참고를 목적으로 포스팅합니다.
최근 들어 프로그래밍 언어들 중 직관적인 표현으로 코딩이 가능한 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() | 해당 집합의 특정 값을 제거 |
'Programming > [Python]' 카테고리의 다른 글
[Python/점프 투 파이썬 복습] 2. (6) Python 프로그래밍 자료형 연습문제 (0) | 2021.02.23 |
---|---|
[Python/점프 투 파이썬 복습] 2. (5) Python 프로그래밍 자료형(변수) (0) | 2021.02.22 |
[Python/점프 투 파이썬 복습] 2. (3) Python 프로그래밍 자료형(튜플, 딕셔너리 자료형) (0) | 2021.02.18 |
[Python/점프 투 파이썬 복습] 2. (2) Python 프로그래밍 자료형(리스트 자료형) (0) | 2021.02.15 |
[Python/점프 투 파이썬 복습] 2. (1) Python 프로그래밍 자료형(숫자형과 문자열 자료형) (0) | 2021.02.13 |