파이썬 리스트 실수 변환 - paisseon liseuteu silsu byeonhwan

[Python] 리스트 각 원소들의 타입 변경

업데이트: October 15, 2019

On This Page

내장함수(map)참고

list_str = ['1','2','3','4']
list_int = list(map(int, list_str)) # 정수로 변환
list_str2 = list(map(str, list_int)) # 다시 문자열로 변환
print(list_int)
print(list_str2)

[Output]
[1, 2, 3, 4]
['1', '2', '3', '4']

태그: python, 기초, 데이터 분석, 데이터, 리스트, 문자열, 파이썬 독학

카테고리: data_handling

업데이트: October 15, 2019

공유하기

Twitter Facebook LinkedIn
이전 다음

댓글남기기

파이썬 리스트 실수 변환 - paisseon liseuteu silsu byeonhwan

파이썬은 자료형끼리의 변환을 아주 간단하게 할 수 있다.

 


 

1. 문자열을 숫자로 변환하기

문자열(str)이 정수(int)나 실수(float)로만 이루어졌을 때 간단하게 변환 가능하다.

문자열이 _나 공백으로 구분되어 있다면 숫자 부분만 잘라내는 것도 쉽게 가능하다.

 

- 사용함수:  int( ) , float( )

 

문자열 → 정수형

 

print('1') #문자열로 된 정수 1
# 1 ==> 숫자로 보이지만 문자열이다.

type('1')
# <class 'str'>

'1' + 1 
# error ==> 문자 + 숫자이므로 연산이 안된다.

int('1') # int()를 사용하여 정수형으로 변경

print(int('1')) 
# 1 ==> 숫자다.

type(int('a'))
# <class 'int'>

 

문자열 → 실수형

 

print('1.0e3') #정수 1000을 지수형태로 선언
# 1.0e3 ==> 지수형으로 보이지만 역시 문자열이다.

print(float('1.0e3')) # float()를 이용해서 실수로 변환
# 1000.0 ==> 숫자 

int('1.0e3') 
# error ==> 정수로는 변환이 안된다

int(float('1.0e3'))
# 1000 ==> 굳이 int형으로 변환하려면 float()을 한번 거쳐서 와야함.

type(float('1.0e3'))
# <class 'float'>

 

2. 숫자를 문자형으로 변환하기

간단하게 변환 가능하다

 

- 사용함수:  str( )

 

str(1) 
# '1' ==> 그대로 문자열이 된다.

str(1e3)
# '1000.0' ==> float이 출력하는 형태대로 문자열이 된다.

str( [ 1, 2, 3 ] )
# '[1, 2, 3]' ==> list의 []까지 그대로 문자열이 된다. 

 

3. 숫자형 끼리의 변환

정수(int), 실수(float)간의 변환

 

int(1.2)
# 1 ==> int형으로 바뀌며 소수점을 버린다.

float(1)
# 1.0 ==> float으로 바뀌며 소수점이 생긴다.

2 * 1
# 2 ==> 정수끼리의 곱셈은 int형으로 출력된다.

2 / 1
# 2.0 ==> 정수끼리라도 나누기를 하면 float으로 바뀐다.

 

4. 문자열(str)과 리스트(list), 튜플(tuple)의 변환 관계

리스트와 튜플은 서로 1:1로 그대로 변환된다. 

문자열의 경우 사실은 index갖고 있기 때문에 리스트나 튜플로 변환된다.

 

- 사용함수:  list( ), tuple( )

 

list( (1, 2, 3) )
# [1, 2, 3]

tuple( [1, 2, 3] )
# (1, 2, 3)

list('python')
# ['p', 'y', 't', 'h', 'o', 'n'] ==> 한 글자씩 다 분리된다. 

tuple('python')
# ('p', 'y', 't', 'h', 'o', 'n') ==> 결과는 리스트와 동일하다.

list(1.2)
# error ==> 숫자는 index가 없기 때문에 리스트나 튜플로는 변환이 안된다.

 

5. 사전형(dict) 다루기

사전형(dict)는 막강하지만 좀 귀찮다.

 

사전형(dict)는 'key'와 'value'가 한 세트이기 때문에 별도의 index가 없다.

따라서, 리스트(list)나 튜플(tuple)을 사전형(dict)로 변환하려면 2차원 배열로 구성되어 있어야 한다.

 

- 사용함수 : dict()

 

dict([ ('a', 1) , ('b', 2), ('c', 3) ]) # list와 tuple로 구성된 2차원 배열
# {'a': 1, 'b': 2, 'c': 3} ==> dict형으로 잘 변환되었다.

dict([1, 2, 3]) # 1차원 list를 dict로 변환 시도
# error ==> 당연히 실패다.

 

사전형을 리스트(list)나 튜플(tuple)로 변환하기 위해선 메소드(method)를 써야한다. 

- 사용메소드 : keys, values, items

 

my_dict = {'a': 1, 'b': 2, 'c': 3} # 간단한 dict를 하나 만든다.

list(my_dict) # 그대로 list로 변환 시도.
# ['a', 'b', 'c'] ==> key만 남고 값은 사라진다.

list(my_dict.keys()) # key를 뽑는 method를 써본다.
# ['a', 'b', 'c'] ==> 위와 동일하게 key만 나왔다.

my_dict.values() # .valus() method를 써서 값만 뽑는다.
# dict_values([1, 2, 3]) ==> 무슨 type인지??

type(my_dict.values())
# <class 'dict_values'> ==> dict_values class로 이도 저도 아니다.

list(my_dict.values())
# [1, 2, 3] ==> list( ) 로 list형으로 변환된다. 당연히 tuple도 가능. 

my_dict.items() # keys와 values를 뽑아 2차원 배열로 만드는 method도 있다.
# dict_items([('a', 1), ('b', 2), ('c', 3)])

list(my_dict.items())
# [('a', 1), ('b', 2), ('c', 3)] ==> dict에서 2차원 list로 변환이 됐다.

 

좀 귀찮다. 리스트(list) 2개를 사전형(dict)으로 변환하려면? 

먼저 두 리스트(list)의 길이(변수의 개수)가 같아야 한다. 

 

a = [ 'a', 'b', 'c' ]
b = [ 1, 2, 3 ]

 

변수 3개 짜리 리스트(list)를 두 개 만들었다.

빈 사전형(dict) 변수를 하나 만들고 첫 번째 리스트(list)를 key로, 두 번째 리스트(list)를 value로 넣는다.

 

- 사용함수: enumerate( ), for in loop 

 

my_dict = {}

for i, x in enumerate(a):
	my_dict[a] = b[i]
    
print(my_dict)
# {'a': 1, 'b': 2, 'c': 3} ==> dict로 잘 만들어졌다.

 

dict comprehension을 이용한 경우. 

 

- 사용함수: enumerate( ), dict comprehension

 

{x : b[i] for i, x in enumerate(a)} # Comprehension 
# {'a': 1, 'b': 2, 'c': 3}

 

공유하기

게시글 관리

구독하기thrive

'파이썬 Python > 파이썬 Python 기초' 카테고리의 다른 글

파이썬 Python 기초 - 6. 제어문(for, while, if, elif)  (0)2019.06.13파이썬 Python 기초 - 5. 연산자  (0)2019.06.12파이썬 Python 기초 - 4. 리스트(list) 다루기  (0)2019.06.10파이썬 Python 기초 - 3. 문자열(str) 다루기  (0)2019.06.08파이썬 Python 기초 - 1. 파이썬 자료형  (0)2019.06.04