
Python 집합 자료형
집합 자료형이란?
집합(set)은 파이썬 2.3부터 지원하기 시작한 자료형으로, 집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형이다.
집합 자료형은 다음과 같이 set 키워드를 사용해 만들 수 있다.
## 집합 설정 예시
s1 = set([1, 2, 3])
s1
→ {1, 2, 3}
위와 같이 set( )의 괄호 안에 리스트를 입력하여 만들거나 다음과 같이 문자열을 입력하여 만들 수도 있다.
## 집합 설정 예시
s2 = set("hello")
s2
→ {'e', 'h', 'l', 'o'}
위의 예시를 보면 집합 자료형의 특징을 알 수 있다. 첫 번째로 중복을 허용하지 않는다. 두 번째로 순서가 없다는 특징이 있다.
리스트나 튜플은 순서가 있기 때문에 인덱싱을 통해 자료형의 값을 얻을 수 있다.
하지만, set 자료형은 순서가 없기 때문에 인덱싱으로 값을 얻을 수 없다.
만약 set 자료형에 저장된 값을 인덱싱으로 접근하려면 아래 예시와 같이 리스트나 튜플로 변환한 후 해야 한다.
## 집합 리스트 변환 후 인덱싱
s1 = set([1, 2, 3])
l1 = list(s1)
l1
→ [1, 2, 3]
## 집합 튜플 변환 후 인덱싱
t1 = tuple(s1)
t1
→ (1, 2, 3)
l1[0]
→ 1
t1[0]
→ 1
교집합, 합집합, 차집합 구하기
교집합, 합집합, 차집합
set 자료형을 정말 유용하게 사용하는 경우는 교집합, 합집합, 차집합을 구할 때이다. 다음 예시와 같이 집합을 설정해보자.
## 집합 설정
s1 = set([1, 2, 3, 4, 5, 6])
s2 = set([4, 5, 6, 7, 8, 9])
○ 교집합
교집합을 구할 때는 '&' 기호를 사용한다. 또는 다음과 같이 intersection 함수를 사용해도 동일한 결과를 돌려준다.
## 교집합
s1 % s2
→ {4, 5, 6}
s1.intersection(s2)
→ {4, 5, 6}
○ 합집합
합집합은 '|'(Shift + 백슬래시)을 사용하여 구할 수 있으며, 중복된 값은 한 개씩만 표현한다. 또는 union 함수를 사용한다.
## 합집합
s1 | s2
→ {1, 2, 3, 4, 5, 6, 7, 8, 9}
s1.intersection(s2)
→ {1, 2, 3, 4, 5, 6, 7, 8, 9}
○ 차집합
차집합은 빼기'-' 기호를 사용하여 구할 수 있으며, difference 함수를 사용해도 동일한 결과를 돌려준다.
## 합집합
s1 - s2
→ {1, 2, 3}
s1.difference(s2)
→ {1, 2, 3}
집합 자료형 관련 함수
○ 값 1개 추가하기(add)
이미 만들어진 set 자료형에 값을 추가할 수 있다. 1개의 값만 추가할 경우에는 add 함수를 사용한다.
## 값 1개 추가하기(add)
s1 = set([1, 2, 3])
s1.add(4)
s1
→ {1, 2, 3, 4}
○ 값 여러 개 추가하기(update)
여러 개의 값을 한꺼번에 추가할 때는 update 함수를 사용한다.
## 값 여러 개 추가하기(update)
s1 = set([1, 2, 3])
s1.update([4, 5, 6]
s1
→ {1, 2, 3, 4, 5, 6}
○ 특정 값 제거하기(remove)
특정 값을 제거하고 싶을 때는 remove 함수를 사용한다.
## 특정 값 제거하기(remove)
s1 = set([1, 2, 3])
s1.remove(2)
s1
→ {1, 3}
Python 불 자료형
불 자료형이란?
참(True)과 거짓(False)을 나타내는 자료형이다. 불 자료형은 다음 2가지 값만 가질 수 있다.
True : 참, False : 거짓
다음과 같이 변수 a에는 True를, 변수 b에는 False를 지정해 보자.
type(x)는 x의 자료형을 확인하는 파이썬 내장 함수이고 이를 사용하여 두 변수의 자료형이 bool로 지정된 것을 확인할 수 있다.
## 두 변수 불 자료형 지정 예시
a = True
b = False
type(a)
→ <class 'bool'>
type(b)
→ <class 'bool'>
자료형의 참과 거짓
자료형에는 참과 거짓이 있으며, 이는 매우 중요한 특징이며 실제로 자주 쓰인다.
자료형의 참과 거짓을 구분하는 기준은 다음 표와 같다.
|
자료형
|
값
|
참 or 거짓
|
|
문자열
|
"python"
|
참
|
|
""
|
거짓
|
|
|
리스트
|
[1, 2, 3]
|
참
|
|
[ ]
|
거짓
|
|
|
튜플
|
( )
|
거짓
|
|
딕셔너리
|
{ }
|
거짓
|
|
숫자형
|
0이 아닌 숫자
|
참
|
|
0
|
거짓
|
|
|
None
|
None
|
거짓
|
문자열. 리스트. 튜플, 딕셔너리 등의 값이 비어 있으면 거짓이 된다. 비어 있지 않으면 참이 된다.
숫자에서는 그 값이 0일 때 거짓이 된다. 위 표를 보면 None이 있는데, 이것에 대해서는 추후 알아보자.
다음 예제를 보고 참과 거짓이 프로그램에서 어떻게 쓰이는지 간단히 알아보자.
아래 코드는 a가 참인 동안 리스트의 마지막 요소를 하나씩 꺼내는 코드이다.
## 불 자료형 참과 거짓 예시
a = [1, 2, 3, 4]
while a:
a.pop()
→ 4
→ 3
→ 2
→ 1
불 연산
불 연산
자료형에 참과 거짓이 있음을 알아보았으니, bool 내장 함수를 사용하면 자료형의 참과 거짓을 식별할 수 있다.
## 불 자료형 연산 예시
bool("python")
→ True
bool("")
→ False
bool([1, 2, 3])
→ True
bool([])
→ False
bool(0)
→ False
bool(3)
→ True
위에서 알아본 것과 동일한 참과 거짓에 대한 결과를 돌려주는 것을 확인할 수 있다.
지금까지 파이썬의 가장 기본이 되는 자료형인 숫자, 문자열, 리스트, 튜플, 딕셔너리, 집합, 불에 대해서 알아보았다.
자료형은 중요하고 프로그램의 근간이 되기 때문에 확실하게 연습하지 않으면 좋은 프로그램을 만들 수 없다.
여러 예시들을 테스트해보며 자료형에 익숙해져야한다.
'연구노트 > Python' 카테고리의 다른 글
| Python 제어문(while문) (1) | 2025.04.08 |
|---|---|
| Python 제어문(if문) (1) | 2025.04.07 |
| Python 튜플 자료형, 딕셔너리 자료형 (0) | 2025.04.07 |
| Python 리스트 자료형 (2) | 2025.04.07 |
| Python 기초 (1) | 2025.04.07 |