是否可以格式化文本输入,以便Python将其识别为列表?

时间:2013-11-27 23:03:10

标签: python list python-2.7 input user-input

我有一个控制台应用程序,提示用户输入各种输入。工作正常。

现在我想在调用的函数中添加一些额外的参数,以允许用户过滤结果。特别是,我希望用户能够输入日期范围,以返回在该时间段内创建的所有记录。

我可以在函数中添加两个单独的参数,例如lowerDateLimit和upperDateLimit。但是我觉得接受一对值为元组是最合适的:dateLimits,其格式为:(lowerDateLimit,upperDateLimit)。

用户在控制台中输入文本是否有办法格式化输入,以便Python将其识别为列表或元组?

或者,更多Pythonic的事情是,只使用两个单独的参数作为下限和上限日期?

3 个答案:

答案 0 :(得分:2)

In [84]: nums = [int(i) for i in raw_input("Enter space separated integers: ").split()]
Enter space separated integers: 1 5 6 7 3 56  2 3 4 2 1

In [85]: nums
Out[85]: [1, 5, 6, 7, 3, 56, 2, 3, 4, 2, 1]

答案 1 :(得分:2)

>>> ast.literal_eval(raw_input('Foo: '))
Foo: 1,2,3
(1, 2, 3)

答案 2 :(得分:1)

我还不能发表评论,但如果您需要列表而不是元组,ast.literal_eval可以通过包含括号来处理:

In [1]: import ast

In [2]: ast.literal_eval('[1,2,3]')
Out[2]: [1, 2, 3]