파이썬 데이터 타입 마스터하기: 실전 가이드
파이썬 데이터 타입
이 가이드는 파이썬의 핵심 데이터 타입을 다루며, 작동 원리와 타입 간 변환 방법을 보여줍니다.
파이썬의 데이터 타입
파이썬의 모든 값은 객체이며, 각 객체는 그 타입을 정의하는 클래스의 인스턴스입니다. 이 타입들을 이해하는 것은 명확하고 효율적이며 신뢰할 수 있는 코드 작성에 필수적입니다.
아래에서 가장 자주 쓰이는 데이터 타입인 숫자, 리스트, 튜플, 문자열, 세트, 딕셔너리를 다룹니다.
파이썬 숫자
파이썬 숫자 타입에는 int, float, complex가 있습니다. type()으로 값의 클래스를 검사하고 isinstance()로 클래스 계층 멤버십을 테스트하세요.
a = 5
print(a, "is of type", type(a))
a = 2.0
print(a, "is of type", type(a))
a = 1+2j
print(a, "is complex number?", isinstance(1+2j, complex))
출력
5 is of type <class 'int'>
2.0 is of type <class 'float'>
(1+2j) is complex number? True
정수는 사용 가능한 메모리만큼 임의로 클 수 있습니다. 부동소수점 수는 약 15자리 정밀도를 가지며, 1은 정수지만 1.0은 float입니다.
복소수는 x + yj 형태를 가지며 x는 실수부, y는 허수부입니다. 샘플 값:
>>> a = 1234567890123456789
>>> a
1234567890123456789
>>> b = 0.1234567890123456789
>>> b
0.12345678901234568
>>> c = 1+2j
>>> c
(1+2j)
float b는 정밀도 제한으로 잘렸습니다.
파이썬 리스트
리스트는 순서가 있고 변경 가능하며 모든 타입의 요소를 담을 수 있는 시퀀스입니다. 대괄호로 선언하고 항목은 쉼표로 구분:
a = [1, 2.2, 'python']
슬라이싱으로 부분 리스트를 얻습니다. 인덱스는 0부터 시작:
a = [5,10,15,20,25,30,35,40]
print("a[2] = ", a[2])
print("a[0:3] = ", a[0:3])
print("a[5:] = ", a[5:])
출력
a[2] = 15
a[0:3] = [5, 10, 15]
a[5:] = [30, 35, 40]
리스트는 변경 가능하여 요소 재할당 가능:
a = [1, 2, 3]
a[2] = 4
print(a)
출력
[1, 2, 4]
파이썬 튜플
튜플은 순서가 있지만 불변입니다. 데이터 보호용으로 쓰이며 크기가 고정이라 리스트보다 약간의 성능 이점이 있습니다. 소괄호로 정의:
t = (5,'program', 1+3j)
슬라이싱은 가능하지만 재할당 시 에러:
t = (5,'program', 1+3j)
print("t[1] = ", t[1])
print("t[0:3] = ", t[0:3])
# t[0] = 10 # TypeError 발생
출력
t[1] = program
t[0:3] = (5, 'program', (1+3j))
파이썬 문자열
문자열은 불변 유니코드 문자 시퀀스입니다. 작은따옴표나 큰따옴표, 삼중 따옴표로 여러 줄 가능.
s = "This is a string"
print(s)
s = '''A multiline string'''
print(s)
출력
This is a string
A multiline string
슬라이싱 가능하지만 문자 수정 시 에러:
s = 'Hello world!'
print("s[4] = ", s[4])
print("s[6:11] = ", s[6:11])
# s[5] = 'd' # TypeError 발생
출력
s[4] = o
s[6:11] = world
파이썬 세트
세트는 중복 없는 항목의 순서 없는 컬렉션으로 중괄호로 정의합니다. 중복을 자동 제거하고 합집합, 교집합 등 세트 연산을 지원합니다.
a = {5,2,3,1,4}
print("a = ", a)
print(type(a))
출력
a = {1, 2, 3, 4, 5}
<class 'set'>
중복 자동 제거:
a = {1,2,2,3,3,3}
print(a)
출력
{1, 2, 3}
세트는 순서가 없어 인덱싱과 슬라이싱을 지원하지 않습니다.
파이썬 딕셔너리
딕셔너리는 키-값 쌍을 저장하며 키로 조회에 고도로 최적화되어 있습니다. 키와 값은 해시 가능한 모든 타입이 가능합니다.
d = {1:'value','key':2}
print(type(d))
print("d[1] = ", d[1])
print("d['key'] = ", d['key'])
# print("d[2] = ", d[2]) # KeyError 발생
출력
<class 'dict'>
d[1] = value
d['key'] = 2
데이터 타입 간 변환
파이썬은 타입 변환용 내장 생성자 int(), float(), str() 등을 제공합니다. float를 int로 변환하면 0 방향으로 절단됩니다.
float(5) # 5.0
int(10.6) # 10
int(-10.6) # -10
문자열 변환은 호환되는 표현 필요:
float('2.5') # 2.5
str(25) # '25'
# int('1p') # ValueError
시퀀스 간 변환:
set([1,2,3]) # {1, 2, 3}
tuple({5,6,7}) # (5, 6, 7)
list('hello') # ['h', 'e', 'l', 'l', 'o']
쌍의 이터러블로 딕셔너리 생성:
dict([[1,2],[3,4]]) # {1: 2, 3: 4}
dict([(3,26),(4,44)]) # {3: 26, 4: 44}