2016-05-31 3 views
0

파이썬 배열 양식 입력 파이썬 입력에

싫어하는 [[1,2,3],[2,3,4]] 형태 정수 형태 1 2 3 2 3 4

하지만 갖는 코드 []

input =[] 
inputfunc() //get input array 
print input 

사용자 입력

[[1,2,3],[2,3,4]] 

파이썬 결과는

[[1,2,3],[2,3,4]] 

그래서이 변수를 저장할 수 있습니다 인쇄 할 것인가? 또는 String 구문 분석을 사용해야합니까?

+0

'input = []': 내장 이름을 변수 이름으로 사용하지 않는 것이 좋습니다. – polku

답변

2

이 같은 파이썬 객체로 해당 문자열을 변환하는 ast.literal_eval()를 사용할 수 있습니다

>>> import ast 
>>> ast.literal_eval('[[1,2,3],[2,3,4]]') 
[[1, 2, 3], [2, 3, 4]] 
>>> L=ast.literal_eval('[[1,2,3],[2,3,4]]') 
>>> type(L) 
<class 'list'> 
>>> L 
[[1, 2, 3], [2, 3, 4]] 
>>> 

ast

추상 구문 트리를 의미합니다. literal_eval()eval()보다 훨씬 안전합니다. 공식 문서에서 인용

:

ast.literal_eval (node_or_string)를 안전하게 발현 노드 또는 파이썬 문자 또는 용기 표시를 포함하는 유니 라틴-1 인코딩 된 문자열을 평가. 제공된 문자열 또는 노드는 문자열, 숫자, 튜플, 목록, dicts, 불린 및 없음과 같은 파이썬 리터럴 구조 뒤에 만 으로 구성 될 수 있습니다.

값을 구문 분석 할 필요없이 신뢰할 수없는 출처의 Python 값이 포함 된 문자열을 안전하게 평가하는 데 사용할 수 있습니다. 연산 자나 인덱싱을 포함하여 임의로 복잡한 표현식을 평가할 수는 없습니다 (예 : ).