2016-07-01 5 views
-3

문자열을 입력해야합니다. 입력. 나는 다른 답변을 시도했지만 숫자에 대해서만 작동하며 공백이없는 경우에만 작동합니다. 예 :입력 파이썬에서 목록 가져 오기

Enter input: ["Test 1", "Test 2", "Test 3"] 
["Test 1", "Test 2", "Test 3"] 

또는 이와 유사한 것. (Enter input: "Test 1", "Test 2", etc..도 가능)

+1

시도한 것을 보여줄 필요가 있습니다. 귀하가 들었을 수있는 것과는 반대로 SO는 코드 작성 서비스가 아닙니다. –

+0

안녕하세요. 죄송하지만 좋은 질문은 아니며 이미 시도한 내용의 예를 사용하여 수정하지 않으면 곧 마감 될 것입니다. –

+0

[Python docs] (https://docs.python.org/2/library/string.html)를 확인 했습니까? – Kroltan

답변

0

이 경우에는 ast.literal_eval이 필요합니다. 합법적 인 파이썬 리터럴에 들어가면 작동 할 것입니다. json.loads도 작동 할 수 있지만 전체 Python 리터럴 구문보다 표현력이 적습니다. 어느 쪽이든 실제로는 list을 만들었는지 확인해야합니다.

import ast 

bad = True 
while bad: 
    userinput = input("Enter text:") 
    try: 
     userlist = ast.literal_eval(userinput) 
    except Exception: 
     pass 
    else: 
     bad = not isinstance(userlist, list) 
    if bad: 
     print("Not a valid Python list") 
# Once you get here, you have a legal list stored in userlist 
+0

정말 고맙습니다. 다른 사람들은 "이 일을하지 마십시오"라고 말하면서 완전히 무시하고 간단한 대답이 더 유용 할 수 있습니다 ** 감사합니다! ** – ZetDude

0

이 방법은 좀 더 편리 할 수 ​​있습니다 그런데

N_items = int(input('How many items? ')) 
my_list = [input('Enter a list item: ') for _ in range(N_items)] 

는 : 답을 얻는 것은 좋은 질문입니다 의미하지 않는다. 네가 downvoted하는 이유가있다.