본문 바로가기

programming/python

[ python 친해지기 #7 ] 파이썬 자료형 5탄 (집합, 불)

[ python 친해지기 #7 ] 파이썬 자료형 5탄 (집합, 불)

 

안녕하세요 심심한 코딩쟁이입니다.

 

오늘은 파이썬의 자료형 집합과 불(bool)에 대해서 알아보도록 하겠습니다.

 

파이썬 자료형 마지막 내용이니까 힘내서 따라와 주세요.

python-logo
파이썬 로고


집합

 

집합에 관련된 내용을 쉽게 처리하기 위해 만들어진 자료형입니다.

 

중복을 허용하지 않는 것과 순서를 중요시하지 않는다는 특징을 가집니다.

 

리스트, 튜플은 순서를 중요시하고 딕셔너리와 집합은 순서를 중요시하지 않습니다.

 

따라서 집합에는 인덱싱으로 접근할 수 없습니다.


집합 생성

 

집합을 생성하고 출력해 보면 순서도 다르고 중복된 요소는 하나로 간추려집니다.

 

집합에 인덱싱으로 접근하고 싶다면 리스트나 튜플로 바꿔야 합니다.

 

# 집합 생성 방법
set1 = set("심심한코딩")
set2 = set([1,2,2,3,3,3])

print(set1)
# 출력 결과
{'심', '코', '딩', '한'}

print(set2)
# 출력 결과
{1, 2, 3}

# 인덱싱으로 접근하고 싶다면 리스트나 튜플로 바꿔야함
list_set = list(set1)
print(list_set[0])
# 출력 결과
심

tuple_set = tuple(set2)
print(tuple_set[-1])
# 출력 결과
3

리스트나 튜플에 중복된 요소를 제거하기

 

# 집합을 이용해 중복된 요소 제거하기
a = [1,2,2,3,3,3,4,4,4,4,5,6,7,7,7,8]
new_a = list(set(a))

print(new_a)
# 출력 결과
[1, 2, 3, 4, 5, 6, 7, 8]

집합의 교집합

 

# 교집합 구하기
s1 = {1,2,3,4,5,6}
s2 = {4,5,6,7,8,9}

# 교집합을 구하기 위해 &를 사용합니다.
s3 = s1 & s2
print(s3)

# 교집합을 구하기 위해 intersection 함수를 사용합니다.
s3 = s1.intersection(s2)
print(s3)
# 출력 결과
{4, 5, 6}

집합의 합집합

 

' | '문자는 shift 키에 ' \ ' 백슬래시 키를 조합해서 표기가 가능합니다.

# 합집합 구하기
s1 = {1,2,3,4,5,6}
s2 = {4,5,6,7,8,9}

# 합집합을 구하기 위해 | 를 사용합니다.
s3 = s1 | s2
print(s3)
# 출력 결과
{1, 2, 3, 4, 5, 6, 7, 8, 9}

# 합집합을 구하기 위해 union함수를 사용합니다.
s3 = s1.union(s2)
print(s3)
# 출력 결과
{1, 2, 3, 4, 5, 6, 7, 8, 9}

집합의 차집합

 

# 차집합 구하기
s1 = {1,2,3,4,5,6}
s2 = {4,5,6,7,8,9}

# 차집합을 구하기 위해 - 를 사용합니다.
s3 = s1 - s2
print(s3)
# 출력 결과

# 차집합을 구하기 위해 difference함수를 사용합니다.
s3 = s1.difference(s2)
print(s3)
# 출력 결과

집합 요소 추가, 제거하기

 

# 집합 요소 추가하기
s1 = {'심','코','딩'}

# 1개 추가하기
s1.add('한')

print(s1)
# 출력 결과
{'코', '한', '심', '딩'}

# 여러개 추가하기
s1.update(['쟁', '이'])
print(s1)
# 출력 결과
{'이', '코', '딩', '심', '한', '쟁'}

# 특정 요소 제거하기
s1.remove('코')
print(s1)
# 출력 결과
{'이', '딩', '심', '쟁', '한'}

 

집합을 다루는 다양한 방법에 대해 알아보았습니다.

 

다음은 불 자료형에 대해 알아봅시다.


 

파이썬 이외에 다른 언어를 경험해 보신 분들은 boolean에 대해 들어보셨을 겁니다.

 

컴퓨터과학에서 사용하는 논리 자료형으로 불리는 불리언(boolean)은 참과 거짓을 나타내는데 쓰입니다.

 

파이썬의 불(bool) 자료형도 참과 거짓을 나타내기 위해 만들어진 자료형입니다.

 

# 불 자료형
test1 = True
test2 = False

print(type(test1))
# 출력 결과
<class 'bool'>

print(type(test2))
# 출력 결과
<class 'bool'>

 

참고로 True, False 이렇게 앞글자를 대문자로 써줘야 합니다.

 

파이썬에 미리 정의되어 있는 예약어로 값이 바뀌지 않습니다.

 

불은 조건문의 반환값으로 주로 사용되는데 추후에 조건문을 다루면서 그 쓰임새에 대해 자세히 알아봅시다.

 

우선 간단한 예시를 보여드리겠습니다.

 

# 불 자료형이 사용되는 예
score = 80

if score >= 70:
	print('시험 합격')
else:
	print('재응시 바람')
# 출력 결과
시험 합격

# 위에 사용된 조건문 if에서 score >= 70의 결과가 True 로 반환되기에
# 시험 합격이라는 출력 결과가 나옵니다.

print(score >= 70)
# 출력 결과
True

 

불 자료형은 프로그래밍에 빠져서는 안 될 존재입니다.

 

참과 거짓을 구분할 때 True와 False만 있는 것이 아닙니다.

 

처음에는 이게 왜...? 라는 생각이 드시겠지만 살펴보시죠.

 

다양한 참과 거짓

 

# 다양한 참과 거짓

print(bool(1))
# 출력 결과
True

print(bool(0))
# 출력 결과
False

print(bool(None))
# 출력 결과
False

# 내용이 있는 문자열
print(bool('심심한'))
# 출력 결과
True

# 내용이 없는 문자열
print(bool(''))
# 출력 결과
False

# 내용이 있는 리스트
print(bool([1,]))
# 출력 결과
True

# 내용이 없는 리스트
print(bool([]))
# 출력 결과
False

# 내용이 있는 튜플
print(bool((1,2,3)))
# 출력 결과
True

# 내용이 없는 튜플
print(bool(()))
# 출력 결과
False

# 내용이 있는 딕셔너리
print(bool({'심':'심', '한':'코'}))
# 출력 결과
True

# 내용이 없는 튜플
print(bool({}))
# 출력 결과
False

 

1과 0, None을 참과 거짓으로 구분하는 것은 어느 정도 그러려니 하겠지만

 

내용이 있고 없고의 차이로도 다양한 자료형이 참과 거짓으로 구분됩니다.

 

이러한 특성은 앞으로 개발하실 때 유용하게 사용될 수 있기 때문에 잘 기억해 두시기 바랍니다.


여기까지 파이썬 친해지기에서 살펴보는 파이썬 자료형의 마지막 시간이었습니다.


이제 우리는 파이썬의 자료형은 모두 알고 있습니다.

 

여러분들은 파이썬에 대해서 잘 알고 있다는 자신감을 좀 더 가지셔도 됩니다.

 

추후에 업로드될 내용으로는 제어문, 반복문, 클래스, 모듈, 예외 처리, 입출력 등등

 

다양한 공부거리들이 기다리고 있으니 기대해 주시기 바랍니다.


다음 포스팅에서 만나요. 감사합니다.

반응형