집합 (set)
집합은 파이썬 2.3부터 지원하기 시작하여 set 키워드를 사용해 만들 수 있다.
set 키워드에 리스트 형식으로 선언하거나, 문자열을 입력하면 중복을 제거하여 변수에 저장되게 된다.
>>> s1 = set([1,2,3]) >>> s1 {1, 2, 3} >>> s2 = set("Hello") >>> s2 {'e', 'H', 'l', 'o'} |
집합 자료형은 크게 두 가지 특징을 가진다.
- 요소 간의 중복을 허용하지 않는다.
- 요소 간의 순서가 없다
집합 자료형은 순서가 존재하지 않기 때문에 인덱싱을 통해 요소를 검색하거나 수정할 수 없다. 그렇다면 집합 자료형을 인덱스로 접근하려면 어떻게 해야할까? 정답은 리스트나 튜플로 변환한 후 인덱싱을 통해서 검색하면 된다.
✰ 중복을 허용하지 않는 특징을 이용하는 방법 : 자료형의 중복을 제거하기 위해서 처음부터 리스트나 튜플로 받지 않고 먼저 집합 자료형으로 데이터를 받은 뒤 , 다시 리스트나 튜플로 변환하면 중복이 제거된 요소들을 가질 수 있다. 즉 필터의 역할을 수행 가능하다.
>>> s1 = set([1,2,3]) >>> l1 = list(s1) >>> l1 [1, 2, 3] >>> l1[0] 1 >>> t1 = tuple(s1) >>> t1 (1, 2, 3) >>> t1[0] 1 |
집합의 특징 사용
먼저 s1 과 s2가 다음과 같이 선언되어 있다고 가정하자.
>>> s1 = set([1, 2, 3, 4, 5, 6]) >>> s2 = set([4, 5, 6, 7, 8, 9]) |
1 . 교집합 ( & )
>>> s1 & s2 | OR s1.intersection(s2) | {4, 5, 6} |
2 . 합집합 ( | )
>>> s1 | s2 | OR s1.union(s2) | {1, 2, 3, 4, 5, 6, 7, 8, 9} |
3 . 차집합 (-)
>>> s1 - s2 | OR s1.difference(s2) | {1, 2, 3} |
집합 관련 함수
1. add : 단일 값 추가하기 ex) s1.add(4)
2. update : 여러개의 값 추가하기 ex) s1.update( [4,5,6] )
3. remove : 특정 값 제거하기 ex) s1.remove(3)
불 (bool)
불 자료형이란 참과 거짓을 나타내는 자료형으로 True 또는 False 의 값만 가질 수 있다. 이때 파이썬에서는 true , false는 사용하지 않고 첫 문자는 대문자를 사용하여 나타내야 한다.
불 자료형은 주로 조건문의 반환 값으로 사용하여 이를 통해 어떤 명령어로 넘어갈 지 결정짓는 중요한 요소이다. 만약에 1 == 1 이라는 코드를 작성하면 이는 반환 값으로 불 자료형인 "True"를 반환한다. 만약에 1 != 1 이라면 "False"를 반환한다.
파이썬 값들의 bool 자료형 표현
값 | bool 값 |
"data" | True |
"" | False |
[1, 2] | True |
[] | False |
() | False |
{} | False |
1 ~ | True |
0 | False |
None | Fasle |
위의 표를 살펴보면 각 자료형의 요소 없이 비어있는 자료형이라면 False로 표현되고. 숫자는 0이 아닌 값은 True로 표현하고 0과 None에 대해서는 False로 나타낸다. 이는 실제 코딩에서도 자주 사용되는 상식이기 때문에 기억해두자 !
자료형의 불 값을 알아보기 위해서는 bool 내장함수의 인자에 측정할 값을 입력해 주면 된다.
>>> bool([ "값" ])
True OR False
'Tech Stack > Python' 카테고리의 다른 글
파일 (0) | 2021.07.27 |
---|---|
함수 (0) | 2021.07.26 |
반복문 ( for , while ) (0) | 2021.07.24 |
문자열 & 리스트 (0) | 2021.07.20 |
튜플 & 딕셔너리 (0) | 2021.07.20 |