我们可以使用eval(input())让用户在python3中输入一个列表 这是一个例子:
L = eval(input('Enter a list: '))
print('The first element is ', L[0])
Enter a list: [5,7,9]
The first element is 5
但是 eval() 在 python2.7 中不工作
我想将数据作为列表输入 [5,7,9] 并希望将每个值作为 L[0] 是 5,L[1] 是 7,等等. 使用 python 2.7。
请您参考如下方法:
input()在 Python 2 中已经应用eval()。
Python 3 input() 是 Python 2 的 raw_input() , 更名。在 Python 2 中,input() 与 eval(raw_input()) 相同:
L = input('Enter a list: ') # includes a call to `eval()` in Python 2
但是,更好的选择是使用 ast.literal_eval()反而;它只允许 Python 文字,而 eval() 允许 任意 Python 表达式。对于带数字的列表输入,ast.literal_eval() 就足够了,而且不会出现安全问题:
from ast import literal_eval
L = literal_eval(raw_input('Enter a list: ')) # safe alternative to eval
请注意,您仍然需要传入有效的 Python 文字;使用['a', 4, 7],不 [a, 4, 7]; just a 不带引号不是有效的 Python 字符串文字。
