2016-07-01 30 views
-3

我需要從輸入中形成字符串的列表。我試過其他的答案,但它們只適用於數字,只有當它沒有空格時才適用。例如:從輸入python獲取列表

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

或類似的東西。 (Enter input: "Test 1", "Test 2", etc..也可以工作)

+1

你需要展示你的嘗試。與您可能聽到的相反,SO不是代碼寫入服務。 –

+0

歡迎來到SO。我很抱歉,但這不是一個好問題,並且很快就會關閉,除非您用已經嘗試過的示例對其進行編輯。 –

+0

你檢查了[Python文檔](https://docs.python.org/2/library/string.html)嗎? – Kroltan

回答

0

對於這樣的情況,你想要ast.literal_eval;只要他們輸入一個合法的Python文字,它就可以工作。 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)] 

順便說一句:得到一個答案,並不意味着它是一個很好的問題。有一個原因是你得到低估。