我们可以使用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
Run Code Online (Sandbox Code Playgroud)
但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
Run Code Online (Sandbox Code Playgroud)
但是,更好的选择是使用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
Run Code Online (Sandbox Code Playgroud)
请注意,您仍然需要传入有效的Python文字; 使用['a', 4, 7],不 [a, 4, 7] ; 只是 a没有引号不是有效的Python字符串文字.
| 归档时间: |
|
| 查看次数: |
1448 次 |
| 最近记录: |