목차
자료형
: 코딩 테스트에서도 가장 많이 사용할 2가지 자료형인 리스트 List 와 딕셔너리 Dictionary 에 대해 중점적으로 살펴볼 예정.
파이썬 자료형
숫자
파이썬에서는 숫자 정수형으로 int 만을 제공.
[Q]
그렇다면 int 보다 더 큰 값은 어떤 자료형에 보관해야 할까?
(파이썬에는 long 이 없을까?)
[A]
버전 2.4부터는 int가 충분하지 않으면 자동으로 long 타입으로 변경되는 구조가 됐다!
덕분에 C와 달리 오버플로 Overflow 가 발생하는 일은 사라졌다.
-> int 는 임의 정밀도를 지원하며, 더 이상 파이썬에서 고정 정밀도 정수형은 지원하지 않게 됐다.
bool
기초 개념
엄밀히 따지면 논리 자료형인데
파이썬에서는 내부적으로 1( True )과 0( False )으로 처리되는 int 의 서브 클래스임.
-
int는 object 의 하위 클래스이기도 하기 때문에 결국 다음과 같은 구조를 띤다.
object > int > bool
(증명) 논리 자료형의 값인 True 와 정수형의 값인 1 을 비교
>>> True == 1
True
>>> False == 0
True
비교 연산자 == 를 통해 확인한 결과 논리 자료형은 내부적으로 정수값을 갖고 있는 것을 확인 가능.
매핑 Mapping
키와 자료형으로 구성된 복합 자료형
딕셔너리: 파이썬에 내장된 유일한 매핑 자료형 기초 개념
집합 set
- 파이썬의 집합 자료형
중복된 값을 갖지 않는 자료형.- 파이썬에서 빈 집합은 다음과 같은 형태로 선언한다.
- 입력
순서유지X - 중복된 값이 있을 경우 하나의 값만 유지
- 키 Key /값 Value 형태인 딕셔너리랑 헷갈리지 않게 주의
>>> a = set()
>>> a
set()
>>> type(a)
<class 'set'>
>>> a = {'a','b','c'} >>> type(a)
<class 'set'>
>>> a = {'a':'A', 'b':'B', 'c':'C'} >>> type(a)
<class 'dict'>
>>> a = {3, 2, 3, 5}
>>> a
{2, 3, 5}
시퀀스 Sequence
우리말로 하면 ‘수열’ 같은 의미
어떤 특정 대상의 순서 있는 나열.
str(string)
- 문자의 순서 있는 나열
- 문자열을 이루는 자료형
list
- 다양한 값들을 배열 형태의 순서 있는 나열로 구성하는 자료형
- 파이썬에서 사실상 배열의 역할을 수행.
불변과 가변
시퀀스는 불변 Immutable 과 가변 Mutable 으로 구분
[[ 불변 Immutable ]]
불변은 값을 변경 불가
str , tuple , bytes
[str이 변경 불가라는 증거 1]
이건 다시 참조한거지 변경이 아님
>>> a = 'abc'
>>> a = 'def'
>>> type(a)
<class 'str'>
(코드 설명)
a 변수는 처음에는 abc 를 참조했다가(같은 주소) 이후 에는 def 를 참조하도록(같은 주소) 변경되었을 뿐
abc 와 def 는 생성된 후에 변하지 않고 메모리 어딘가에 남아 있다
>>> a = 'abc'
>>> id('abc')
4317530408
>>> id(a)
4317530408
>>> a = 'def'
>>> id('def')
4318831648
>>> id(a)
4318831648
[str이 변경 불가라는 증거 2]
str 이 정말로 변경되려면 참조하고 있는 str 에 대해 다음과 같은 할당자가 처리되어야 함
- 여기서는 오류가 발생
# 문자열 그 자체를 바꾸려고 시도
>>> a[1] = 'd'
Traceback (most recent call last):
File "<stdin>", line 1, in <module> TypeError: 'str' object does not support item assignment
[[가변 Mutable]]
list 는 가변
기초 개념
리스트는 자유롭게 값을 추가, 삭제할 수 있는 동적 배열.
지금까지 파이썬에서 제공하는 주요 자료형을 살펴봤다. 중요한 내용들은 다시 설명한다고 언급했으니 이제 하나씩 살펴보자. 에 대해 살펴본다.