从输入python获取列表

时间:2016-07-01 02:15:20

标签: python python-3.x

我需要从输入中形成字符串列表。我已尝试过其他答案,但它们仅适用于数字,只有在没有空格的情况下才能使用。例如:

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

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

2 个答案:

答案 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)]

顺便说一下:得到答案并不意味着这是一个好问题。你有理由倾向于投票。