1. 집합 자료형
- 집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형
>>> s1 = set([1,2,3])
>>> s1
{1, 2, 3}
>>> s2 = set("Hello")
>>> s2
{'e', 'H', 'l', 'o'}
* 특징
- 중복을 허용하지 않음
- 순서가 없음(Unordered)
** 리스트나 튜플은 순서가 있기 때문에 인덱싱을 통해 자료형의 값을 얻을 수 있지만 set 자료형은 순서가 없기 때문에 인덱싱으로 값을 얻을 수 없음
>>> 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
- set 자료형에 저장된 값을 인덱싱으로 접근하려면 리스트나 튜플로 변환한 후 사용해야 함
- 중복을 허용하지 않는 set의 특징은 자료형의 중복을 제거하기 위한 필터 역할로 종종 사용하기도 함
* 교집합, 합집합, 차집합 구하기
>>> s1 = set([1, 2, 3, 4, 5, 6])
>>> s2 = set([4, 5, 6, 7, 8, 9])
>>> s1 & s2
{4, 5, 6}
>>> s1.intersection(s2)
{4, 5, 6}
>>> s1 | s2
{1, 2, 3, 4, 5, 6, 7, 8, 9}
>>> s1.union(s2)
{1, 2, 3, 4, 5, 6, 7, 8, 9}
>>> s1 - s2
{1, 2, 3}
>>> s2 - s1
{8, 9, 7}
>>> s1.difference(s2)
{1, 2, 3}
>>> s2.difference(s1)
{8, 9, 7}
- 교집합 : & OR intersection
- 합집합 : | OR union
- 차집합 : - OR difference
* 집합 자료형 함수 (add, update, remove)
>>> s1 = set([1, 2, 3])
>>> s1.add(4)
>>> s1
{1, 2, 3, 4}
>>> s1 = set([1, 2, 3])
>>> s1.update([4, 5, 6])
>>> s1
{1, 2, 3, 4, 5, 6}
>>> s1 = set([1, 2, 3])
>>> s1.remove(2)
>>> s1
{1, 3}
2. 불 자료형
- 참(True)과 거짓(Flase)을 나타내는 자료형 ( 첫 문자를 항상 대문자로 사용해야함 )
>>> a = True
>>> b = False
>>> type(a)
<class 'bool'>
>>> type(b)
<class 'bool'>
>>> 1 == 1
True
>>> 2 > 1
True
>>> 2 < 1
False
- type(x)는 x의 자료형을 확인하는 파이썬의 내장 함수이다.
>>> a = [1, 2, 3, 4]
>>> while a:
... print(a.pop())
...
4
3
2
1
>>> if []:
... print("참")
... else:
... print("거짓")
...
거짓
>>> if [1, 2, 3]:
... print("참")
... else:
... print("거짓")
...
참
- 마지막의 코드는 [1, 2, 3]은 요솟값이 있는 리스트이기 때문에 참
* 불 연산
>>> bool('python')
True
>>> bool('')
False
>>> bool([1,2,3])
True
>>> bool([])
False
>>> bool(0)
False
>>> bool(3)
True
3. 자료형의 값을 저장하는 공간, 변수
- 다른 프로그래밍 언어와 달리 파이썬은 변수에 저장된 값을 스스로 판단하여 자료형을 지정
- 변수는 객체를 가리키는 것 ( 우리가 지금껏 보아 온 자료형과 같은 것을 의미 )
* 리스트 복사
>>> a = [1,2,3]
>>> b = a
>>> a is b # a와 b가 가리키는 객체는 동일한가?
True
>>> a[1] = 4
>>> a
[1, 4, 3]
>>> b
[1, 4, 3]
- 마지막 코드에서 a 리스트의 두 번재 요소를 값 4로 바꾸었더니 a만 바뀌는 것이 아니라 b도 똑같이 바뀌었음
* 변수 생성 시 a 변수의 값을 가져오면서 a와는 다른 주소를 가리키도록 만드는 방법
* [:] 이용, copy 모듈 이용
>>> a = [1, 2, 3]
>>> b = a[:]
>>> a[1] = 4
>>> a
[1, 4, 3]
>>> b
[1, 2, 3]
>>> from copy import copy
>>> b = copy(a)
>>> b is a
False
- b = copy(a)는 b = a[:]과 동일
* 변수 만드는 여러가지 방법
>>> a, b = ('python', 'life')
>>> (a, b) = 'python', 'life'
>>> [a,b] = ['python', 'life']
>>> a = b = 'python'
>>> a = 3
>>> b = 5
>>> a, b = b, a
>>> a
5
>>> b
3
'programming > Python' 카테고리의 다른 글
Python 기초, 제어문1(if문) (0) | 2020.09.15 |
---|---|
Python 기초, 자료형 연습문제 (0) | 2020.09.14 |
Python 기초, 자료형3(튜플 자료형, 딕셔너리 자료형) (0) | 2020.08.26 |
Python 기초, 자료형2(리스트 자료형) (0) | 2020.08.26 |
Python 기초, 자료형1(숫자형, 문자형) (0) | 2020.08.26 |
댓글