我有一个控制台应用程序,提示用户输入各种输入。工作正常。
现在我想在调用的函数中添加一些额外的参数,以允许用户过滤结果。特别是,我希望用户能够输入日期范围,以返回在该时间段内创建的所有记录。
我可以在函数中添加两个单独的参数,例如lowerDateLimit和upperDateLimit。但是我觉得接受一对值为元组是最合适的:dateLimits,其格式为:(lowerDateLimit,upperDateLimit)。
用户在控制台中输入文本是否有办法格式化输入,以便Python将其识别为列表或元组?
或者,更多Pythonic的事情是,只使用两个单独的参数作为下限和上限日期?
答案 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]