python将整数嵌套列表的字符串表示形式转换为整数嵌套列表

时间:2018-09-04 08:38:12

标签: python python-3.x

我正在尝试读取嵌套列表的字符串表示形式,并将其转换为python中的嵌套列表。我尝试了以下方法:

l=input("enter nested list")
result=eval(l)

,输入为[[1],[2]] 结果是我刚输入的字符串,因此如果我print(l[0])的结果是'['。 任何援助将不胜感激。

2 个答案:

答案 0 :(得分:1)

eval是不安全的,因为它不对输入内容执行任何 background 检查。请改用内置模块literal_eval中的ast。您可以编写:

from ast import literal_eval as leval

l = '[[1],[2]]'
result = leval(l)
print(result)     # -> [[1], [2]]
print(result[0])  # -> [1]

如@ bro-grammer所指出的那样,您的代码存在问题,是您假设eval是就地运行 ,而您却是在eval(l) {{1} }被修改。 那不是它的工作方式l返回其结果,并将其分配给代码中的eval。尝试改用result,您会看到。

答案 1 :(得分:1)

您不能使用eval,而只能使用exec。无需导入任何模块。

l = input("Enter nested list: ")
exec('result = '+l)
print(result)
print(result[0])

测试:

Enter nested list: [[1],[2]]
[[1], [2]]
[1]