본문 바로가기

프로그래밍

[python] 자료 형 변환 (casting)

자료형 강제 형 변환하는 방법

 

list -> set -> list 형 변환

set() 자료형은 중복 값이 허용되지 않는다.

a = [1,2,3,4,5,6,6,6]
print(type(a)) #<class 'list'>

a = set(a) #중복되는 값 제거
print(type(a)) #<class 'set'> 
print(a) #{1, 2, 3, 4, 5, 6}

a = list(a)
print(type(a)) #<class 'list'>
print(a) #[1, 2, 3, 4, 5, 6]

 

string -> int 형 변환

a = "5"
print(type(a)) #<class 'str'>

b = int(a)
print(type(b)) #<class 'int'>
print(b) # 5

 

float -> int 형 변환

a = 10
b = 2
c = a/b # 나누기를 하면 소수점이 있는 float 타입으로 반환
print(type(c)) #<class 'float'>
print(c) # 5.0

c = int(a/b) # 나누기 한 값을 int 타입으로 형 변환 수행
print(type(c)) #<class 'int'>
print(c) # 5

 

str -> float 형 변환

a = "10.1"
print(type(a)) # <class 'str'>

b = float(a)
print(type(b)) # <class 'float'>
print(b) # 10.1

 

만약 문자열 "a"를 int 자료형으로 형 변환한다면? 당연히 오류가 발생한다.

a = "a"
print(type(a)) # <class 'str'>

b = int(a) # 캐스팅 오류 발생

Traceback (most recent call last):
  File "/python_test/set.py", line 7, in <module>
    b = int(a)
ValueError: invalid literal for int() with base 10: 'a'