파이썬리스트에 lisp 입력을 구문 분석하려고합니다. 그러나 입력을 구문 분석 할 때 문자열 목록을 얻지 만 개별 요소를 int로 원합니다.파이썬에 Lisp 입력을 입력 할 때의 문제점
예 : I 입력 다음 구문 분석 할 때 : "(2 (10 (5 11))) (5 6) (4)"
출력 : [[['2'], ['10', '5']], [['5'], ['6']], [['4']]]
내가 사용 [[map(int, x) for x in lst] for lst in test]
이 int
로 문자열을 변환 할 수 있지만,이 기능은 레벨 2의 중첩 된 목록을 구문 분석하지만 것입니다 내가 중첩 된 목록이있는 경우 2 개 이상인 경우 구문 분석에 어떻게 사용해야합니까?
필자는 pyparsing을 시도했지만 제대로 이해하지 못했습니다.
사용한 구문 분석 코드를 표시 할 수 있습니까? 최선의 해결책은 사후 처리 단계가 아닌 변경을 포함 할 것입니다. – user2357112
pyparsing에서 구문 분석 작업을 첨부하여 구문 분석 할 때 정수 문자열 대 int 변환을 수행 할 수 있습니다. pyparsing wiki에 대한 http://pyparsing.wikispaces.com/file/view/chemicalFormulas.py/31041705/chemicalFormulas.py 예제를 살펴보십시오. 해석기의 내부 버전 2에서'convertIntegers' 메소드가'integer' 표현식에 어떻게 첨부되는지보십시오. 나중에 사후 처리 할 필요없이 구문 분석시 문자열 - 변환을 수행합니다. – PaulMcG