이번 포스팅에선 Python의 자료형인 집합(Set), Boolean 자료형에 대해 알아보겠습니다.
1. 수 - 정수형(Integer), 실수형(Float), 복소수(Complex number)
2. 문자열(String)
3. Boolean 타입 (True, False)
4. 리스트(List)
5. 튜플(Tuple)
6. 딕셔너리(Dictionary)
7. 집합(Set)
1. 집합(Set)
- 집합 자료형이란, 수학에서의 집합과 관련된 연산들을 처리하기 위해 존재하는 자료형입니다.
1-1.
집합 자료형 선언 방법 2가지
- 변수명 = set([Element1, Element2 ...])
- 변수명 = {Element1, Element2...}
# 집합을 정의하는 방법 1
s1 = set([1, 2, 3])
print(s1) # {1, 2, 3}
# 집합을 정의하는 방법 2
set1 = {1, 2, 3, 4}
print(set1) # {1, 2, 3, 4}
# 집합의 응용 1
kakao_friend_list = ["muzi", "neo", "con", "neo", "con", "apeach", "muzi"]
# 중복되는 원소를 삭제 : 집합의 성질 이용 - (중복 허용 X, Unordered)
friend_list = set(kakao_friend_list)
real_friend_list = list(friend_list)
print(real_friend_list) # ['apeach', 'muzi', 'con', 'neo']
# 집합의 응용 2 : 문자열이 문자로 나누어진다. (중복 허용 X, Unordered)
string1 = set("hello")
print(string1) # {'o', 'e', 'h', 'l'}
2. 집합의 성질 : 교집합(Intersection), 합집합(Union), 차집합(Difference)
2-1. 교집합(Intersection)
- 두 집합 중 공통된 원소를 찾아 집합에 저장한 후 반환합니다.
- 문법
(1). set_name1 & set_name2
(2). set_name1.intersection(set_name2)
# 교집합(Intersection)
num_set1 = set([10, 20, 30, 40, 50])
num_set2 = set([30, 40, 50, 60, 70])
print(num_set1 & num_set2) # {40, 50, 30}
print(num_set1.intersection(num_set2)) # {40, 50, 30}
2-2. 합집합(Union)
- 두 집합의 모든 원소를 중복되지 않게 모두 합친 후 하나의 집합에 저장한 후 반환합니다.
- 문법
(1). set_name1 | set_name2
(2). set_name1.union(set_name2)
# 합집합(Union)
num_set1 = set([10, 20, 30, 40, 50])
num_set2 = set([30, 40, 50, 60, 70])
print(num_set1 | num_set2) # {70, 40, 10, 50, 20, 60, 30}
print(num_set1.union(num_set2)) # {70, 40, 10, 50, 20, 60, 30}
2-3. 차집합(Difference)
- 집합끼리 서로 차집합한 결과를 집합에 저장한 후 반환합니다.
- 문법
(1). set_name1 - set_name2
(2). set_name1.difference(set_name2)
# 차집합(Difference)
num_set1 = set([10, 20, 30, 40, 50])
num_set2 = set([30, 40, 50, 60, 70])
print(num_set1 - num_set2) # {10, 20}
print(num_set1.difference(num_set2)) # {10, 20}
3. 집합과 관련된 여러 가지 함수
3-1.
- add() : 집합에 특정한 원소 1개를 추가하는 함수입니다.
- 문법 : set_name.add("추가할 원소")
# add()
kakao_friend_list = {"muzi", "con", "neo"}
kakao_friend_list.add("apeach")
print(kakao_friend_list) # {'apeach', 'con', 'muzi', 'neo'}
3-2.
- update() : 집합에 다수의 원소를 추가할 수 있는 함수입니다.
- 문법 : set_name.update(["추가할 원소1", "추가할 원소2", ...]))
# update()
kakao_friend_list = {"muzi", "con", "neo"}
kakao_friend_list.update(["apeach", "frodo"])
print(kakao_friend_list) # {'con', 'apeach', 'muzi', 'neo', 'frodo'}
3-3.
- remove() : 집합에서 특정한 원소를 제거할 수 있는 함수입니다.
- 문법 : set_name.remove("제거할 원소")
# remove()
kakao_friend_list = {"muzi", "con", "neo", "apeach"}
kakao_friend_list.remove("muzi")
print(kakao_friend_list) # {'con', 'apeach', 'neo'}
4. Boolean
- Boolean 자료형이란, 특정 조건에 대해 True(참) 또는 False(거짓)을 나타내는 자료형입니다.
- Python에서는 아래 테이블에 있는 특정한 값들의 형태에 대해 일정한 Boolean의 성질을 갖게 됩니다.
값(Value) | Boolean Type |
String | True |
"" (공백) | False |
[1, 2, 3] | True |
[] (공백 List) | False |
() (공백 Tuple) | False |
{} (공백 Set) | False |
1 | True |
0 | False |
None | False |
위의 테이블만 보면 정확히 감이 오기 어려울 수 있으므로 아래와 같은 예시 코드를 보겠습니다.
# 문자열이 담긴 배열 선언
kakao_friends_list = ["neo", "muzi", "frodo", "apeach", "con"]
# while 반복문을 이용하여 리스트의 원소를 하나씩 삭제
# while 괄호 안에 존재하는 리스트의 원소가 모두 삭제된다면 False가 반환되어 반복문의 실행이 종료된다.
while(kakao_friends_list):
kakao_friends_list.pop()
print(kakao_friends_list)
'''
['neo', 'muzi', 'frodo', 'apeach']
['neo', 'muzi', 'frodo']
['neo', 'muzi']
['neo']
[] / 공백 리스트이므로 while문이 더 이상 실행되지 않는다.
'''
이번 포스팅에선 Python의 자료형 중 하나인 집합(Set)과 이에 대한 특징, 집합에서 요소들을 관리하기 위해 사용되는 함수, Boolean 자료형에 대해 살펴보았습니다.
다음 포스팅에선 프로그램의 흐름을 제어하는 제어문 중 하나인 조건문에 대해 알아보도록 하겠습니다.
======================================================================
해당 포스팅에 대해 내용 추가가 필요하다고 생각되면 기존 포스팅 내용에 다른 내용이 추가될 수 있습니다.
개인적으로 공부하며 정리한 내용이기에 오타나 틀린 부분이 있을 수 있습니다.
이에 대해 지적해 주시면 감사하겠습니다.
'백엔드(Back-End) > Python' 카테고리의 다른 글
[Python] - 제어문 - 반복문(while, for문), List comprehension (0) | 2022.08.19 |
---|---|
[Python] - 제어문 - 조건문(if, elif) 여러 가지 연산자 (0) | 2022.08.17 |
[Python] - 자료형 - 딕셔너리(Dictionary) (0) | 2022.08.15 |
[Python] - 자료형 - 튜플(Tuple) (0) | 2022.08.15 |
[Python] - 자료형 - 리스트(List) (0) | 2022.08.15 |
댓글