본문 바로가기
Tech Stack/Python

집합 & 불 자료형

by jaeaemin 2021. 7. 21.
집합 (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