我需要从输入中形成字符串列表。我已尝试过其他答案,但它们仅适用于数字,只有在没有空格的情况下才能使用。例如:
Enter input: ["Test 1", "Test 2", "Test 3"]
["Test 1", "Test 2", "Test 3"]
或类似的东西。 (Enter input: "Test 1", "Test 2", etc..
也可以工作)
答案 0 :(得分: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
答案 1 :(得分:0)
这种方式可能更方便:
N_items = int(input('How many items? '))
my_list = [input('Enter a list item: ') for _ in range(N_items)]
顺便说一下:得到答案并不意味着这是一个好问题。你有理由倾向于投票。