(ast 모듈) 파이썬 리스트 원소 타입 변경 : 문자열 [1, 2, 3, 4]가 입력으로 들어오는 경우

백준 5430 문제를 풀다가..

입력이 [1,2,3,4] 이렇게 문자열 형식으로 들어오는데 이걸 바로 list로 받아볼 수 없을까 해서 찾아보다 알게 되었다.

 

ast 모듈을 이용하면 됨!

 

import ast

list = ast.literal_eval(input())

 

이런식으로 코드를 작성하면 된다.

 

만약 이미 리스트로 저장되어있는 경우여서 원소의 타입만 변경해주어야 하는 경우라면

map 을 이용하면 된다.

 

int_list = list(map(int, str_list))

 

map을 이용하는 방법은 잘 알지만, 입력으로 [1,2,3,4] 이런식으로 str을 받게 되어버리면 리스트로 인식하는게 아니라 '[' 기호 ',' 기호 등 따로 입력으로 인식되기 때문에 아래 방법이 통하지 않는다.

 

++)

근데 ast 모듈이 어느정도 시간복잡도를 차지하나봅니다..

문자열을 알아서 파싱해주는 모듈이지만 메모리가 여유가 있을 때 사용해야 할 것 같습니다.