![](/img/trans.png)
[英]How to convert nested list strings to integers then sort them in python 3?
[英]python convert string representation of nested list of integers to nested list of integers
我正在尝试读取嵌套列表的字符串表示形式,并将其转换为python中的嵌套列表。 我尝试了以下方法:
l=input("enter nested list")
result=eval(l)
输入[[1],[2]]
,结果是我刚刚输入的字符串,因此,如果我print(l[0])
则结果为'['
。 任何援助将不胜感激。
eval
不安全,因为它不会对输入内容进行任何后台检查。 使用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-语法指出的是,你认为eval
原地 ,当你做工作eval(l)
l
被修改。 但这不是它的工作方式 。 eval
返回其结果并赋予它result
在你的代码。 尝试改为执行print(result[0])
,您会看到。
您不能使用eval
但可以使用exec
。 无需导入任何模块。
l = input("Enter nested list: ")
exec('result = '+l)
print(result)
print(result[0])
测试:
Enter nested list: [[1],[2]]
[[1], [2]]
[1]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.