Collection타입 중 데이터타입
1. list -> 순서가 존재, indexing 존재, mutable(변경 가능)
2. tuple -> 순서가 존재, immutable(생성된 후 변경 불가)
3. dict -> 키와 값으로 구성, 중복 불가, 순서 X
4. set -> 키값으로만 존재, 중복 불가, 순서 X
1. List와 tuple의 차이
list_ = [1,2,3,'python',[32,53]]
tuple_ = (1,2,3,4,(32,231))
list의 경우 인덱스를 지정하여 값을 변경할 수 있다.
하지만 tuple의 경우 변경이 되지 않는다.
a = 'what a nice day!'
a[0] = 'k'
라고 입력하을 하게되면 오류가 생긴다.
수정하기 위해선
a = 'k' + a[1:]
로 입력을 해야만 함.
2. tuple의 기능 unpacking
튜플의 값을 차례대로 변수에 대입하는 기능
튜플을 활용하는 이유중 하나
a, b, c = 100, 200, (100,200)
*문제) a와 b의 값을 교환하세요. *
a = 4
b = 5
#일반 적인 경우
c = a
a = b
b = c
print("a =", a,", b =",b)
# python의 tuple을 활용한다면
a, b = b, a
print("a =", a,", b =",b)
3. dict와 set의 차이
dict\_ = {'korea':seoul, 'japan' :'osaka', 'USA' : 'Washington DC'}
set\_ = {1, 2, 3, 4, 5}
dict의 경우 key와 value값이 존재한다.
하지만 set의 경우는 key값만 존재한다.
두 데이터타입 *모두 중복값을 가지지 않는다. *
4. dict in 연산자.
list에서도 사용되는 in연산자는 내부에 값이 존재하는지 여부를 확인하기 위해 사용된다.
list의 in과 dict(dictionary)의 in은 기능면은 동일하나 성능면으로 차이가 있다.
list의 값이 커진다면, in연산자는 값을 하나하나 다 스캔을 한다음 결과값을 반환하기 때문에 오래걸린다.
하지만 dict의 (O(1)연산) 딕셔너리의 크기와 관계없이 항상 연산의 속도가 일정하다.
a = {'a' : 1, 'b' : 2, 'c' : 3}
print(a)
print('b' in a) # True 키값만 찾아냄.
print(2 in a) # False
5. Set 활용방법
Set은 단어그대로 수학연산를 나타낼 때 활용할 수 있다. (많이 사용하지는 않는다고 한다.)
a = {1, 2, 3}
b = {2, 3, 4}
print(a.union(b)) #합집합
print(a.intersection(b)) #교집합
print(a.difference(b)) # 차집합
print(a.issubset(b)) #부분집합
반응형
'일상 기술노트' 카테고리의 다른 글
01-1. 작업환경만들기 - (고민편) (0) | 2020.07.09 |
---|---|
01. 작업환경 만들기 (GCP Compute Engine 만들어보기) (0) | 2020.07.07 |
[GitHub] 깃허브 error 0x80092013 push&pull 오류 (0) | 2019.10.06 |
나중에 남길 블로그 글 docker 전체 종료 명령어 (0) | 2019.09.08 |
기술노트 1 _ 하둡 설치 (0) | 2019.09.08 |