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