1
或其他方式问我想是否有一个literal_eval等于范围函数(不发送整个数组作为范围)。有没有办法使用ast.literal_eval做range()?
以下
import ast
ast.literal_eval("range(0,3)")
ast.literal_eval("[0, 1, 2, 3][0:3]")
结果:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python2.7/ast.py", line 80, in literal_eval
return _convert(node_or_string)
File "/usr/lib64/python2.7/ast.py", line 79, in _convert
raise ValueError('malformed string')
ValueError: malformed string
虽然这是可能的话,整个阵列为字符串然后转换回其是不理想的。我希望在没有初始列表的情况下使用[0:3]语法。
>>> ast.literal_eval(str(range(0,3)))
[0, 1, 2]
谢谢,希望我错过了一些东西,但我猜不是。 – matt