728x90
시작에 앞서 이 글은 박상길 저자님의 파이썬 알고리즘 인터뷰 책을 읽고 정리한 내용임을 밝힙니다.
파이썬 자료형
(모든 자료형을 언급하지 않고, 주요 자료형만 언급했습니다. )
- 숫자
파이썬에서는 숫자 정수형으로 int 자료형만을 제공합니다.
bool은 논리 자료형이지만 내부적으로 1과 0으로 처리되는 int의 서브 클래스입니다. (True -> 1, False -> 0)
클래스 구조 : object > int > bool
print(True == 1) # True print(False == 0) # True
- 매핑 (Mapping)
매핑은 키와 자료형으로 구성된 복합 자료형입니다.
파이썬의 유일한 매핑 자료형은 딕셔너리입니다.
# 빈 딕셔너리 선언 empty_dict01 = {} empty_dict02 = dict() # 값이 있는 딕셔너리 선언 ages = {"jiyoon": 19, "jiyoung":15} prices = {"math_book": 23000, "korean_book":35000}
- 집합 (Set)
파이썬의 집합 자료형(set)은 중복된 값을 가지지 않는 자료형입니다.
set은 입력 순서가 유지되지 않습니다.
만약 중복된 값이 생길 시 하나의 값만 유지합니다.
딕셔너리와 같이 중괄호 { } 를 사용하지만 키와 값 형태인 딕셔너리와 다르게 set은 값만 선언합니다.
# 빈 set 선언 empty_set01 = set() # 값이 있는 set 선언 ages = {3, 4, 2, 3, 5} print(ages) # {4, 2, 3, 5}
- 시퀀스 (Sequence)
수열과 비슷한 의미로, 어떤 특정 대상의 순서 있는 나열을 뜻합니다.
시퀀스는 불변(str, tuple, bytes)과 가변(list)으로 구분합니다.
* 불변 : 값 변경 불가능 / 가변 : 자유롭게 값을 추가, 삭제 가능
* str은 불변 객체입니다. 값이 바뀌는 것이 아니라 참조하는 주소가 바뀌는 것입니다.
원시 타입
원시 타입이란 메모리에 타입 크기만큼의 공간을 할당한 후 그 공간을 오로지 값으로만 채워넣는 것입니다.
C, java와 다르게 python은 원시 타입을 제공하지 않습니다.
python은 느린 속도와 더 많은 메모리를 감수하는 대신 다양한 기능을 제공하는 객체를 선택했습니다.
객체
- 불변 객체
bool, int, float, tuple, str은 불변 객체입니다.
불변 객체는 값이 변하지 않기 때문에 dict의 키나 set의 값으로 사용할 수 있습니다.
a = 10 b = a print(id(10)) # 6513274655 print(id(a)) # 6513274655 print(id(b)) # 6513274655
- 가변 객체
list, dict, set은 가변 객체입니다.
다른 변수가 참조하고 있을 때 값이 변경된다면 그 다른 변수의 값도 변경됩니다.
a = [1, 2, 3, 4, 5] b = a print(b) # [1, 2, 3, 4, 5] a[2] = 6 print(a) # [1, 2, 6, 4, 5] print(b) # [1, 2, 6, 4, 5]
- 속도
파이썬은 모든 것이 객체로 저장됩니다. 그렇기에 여러 단계의 부가 작업이 필요하기 때문에 속도가 느립니다.
728x90
'코딩테스트 > 파이썬 알고리즘 인터뷰' 카테고리의 다른 글
[파이썬 알고리즘 인터뷰] 6장 - 문자열 조작 (2) | 2021.05.26 |
---|---|
[파이썬 알고리즘 인터뷰] 5장 - 리스트, 딕셔너리 (0) | 2021.05.24 |
[파이썬 알고리즘 인터뷰] 4장 - 빅오 (big-O) (0) | 2021.05.22 |