我需要從輸入中形成字符串的列表。我試過其他的答案,但它們只適用於數字,只有當它沒有空格時才適用。例如:從輸入python獲取列表
Enter input: ["Test 1", "Test 2", "Test 3"]
["Test 1", "Test 2", "Test 3"]
或類似的東西。 (Enter input: "Test 1", "Test 2", etc..
也可以工作)
我需要從輸入中形成字符串的列表。我試過其他的答案,但它們只適用於數字,只有當它沒有空格時才適用。例如:從輸入python獲取列表
Enter input: ["Test 1", "Test 2", "Test 3"]
["Test 1", "Test 2", "Test 3"]
或類似的東西。 (Enter input: "Test 1", "Test 2", etc..
也可以工作)
對於這樣的情況,你想要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
非常感謝你,其他人都說「不要這樣做」,完全忽略它,而簡單的答案可能更有用**謝謝!** – ZetDude
這樣可能會多一點方便:
N_items = int(input('How many items? '))
my_list = [input('Enter a list item: ') for _ in range(N_items)]
順便說一句:得到一個答案,並不意味着它是一個很好的問題。有一個原因是你得到低估。
你需要展示你的嘗試。與您可能聽到的相反,SO不是代碼寫入服務。 –
歡迎來到SO。我很抱歉,但這不是一個好問題,並且很快就會關閉,除非您用已經嘗試過的示例對其進行編輯。 –
你檢查了[Python文檔](https://docs.python.org/2/library/string.html)嗎? – Kroltan