ProgramingTip

목록의 표현을 실제 목록으로 변환

bestdevel 2020. 10. 12. 07:55
반응형

목록의 표현을 실제 목록으로 변환


이 질문에 이미 답변이 있습니다.

목록과 똑같이 보이는 곳이 있습니다.

fruits = "['apple', 'orange', 'banana']"

목록으로 변환하는 방법은 무엇입니까?


>>> fruits = "['apple', 'orange', 'banana']"
>>> import ast
>>> fruits = ast.literal_eval(fruits)
>>> fruits
['apple', 'orange', 'banana']
>>> fruits[1]
'orange'

주석에서 지적했듯이 ast.literal_eval안전 합니다. 문서에서 :

Python은 많은 노드에서 사용됩니다. 어디에서나 노드는 다음 Python 리터럴 구조로만 구성 될 수 있습니다 : 목록, 숫자, 튜플, 목록, dicts, 부울 및 없음.

이 값을 직접 구문 분석 할 필요없이 많은 수없는 소스의 Python 라이브러리 값을 사용하여 사용할 수 있습니다.


에 대한 간단한 호출 은 다음을 수행합니다.eval()

fruits = eval("['apple', 'orange', 'banana']")
fruits
> ['apple', 'orange', 'banana']

이 또는 기사 에서 설명한대로 다음과 같이 약간 더 안전하게 (의도하지 않은 부작용이나 악성 코드 삽입 위험없이 ) 동일한 작업을 수행 할 수 있습니다.

fruits = eval("['apple', 'orange', 'banana']", {'__builtins__':None}, {})

이 솔루션은 추가 모듈에 의존하지 않는 장점이 있습니다.


나는 이것이 ast.literal_eval의 목적이라고 생각합니다.

( http://docs.python.org/library/ast.html#ast.literal_eval )

참고 URL : https://stackoverflow.com/questions/10775894/converting-a-string-representation-of-a-list-into-an-actual-list-object

반응형