본문 바로가기

연구노트/Python

Python 집합 자료형, 불 자료형

 

 

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