社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

Teererai Marange • 5 年前 • 1338 次点击  

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

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

带输入 [[1],[2]] 结果是我刚输入的字符串,如果 print(l[0]) 结果是 '[' . 如有任何帮助,我们将不胜感激。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/38694
 
1338 次点击  
文章 [ 2 ]  |  最新文章 5 年前
Black Thunder
Reply   •   1 楼
Black Thunder    6 年前

你不能用 eval 但是 exec . 不需要导入任何模块。

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

测试:

Enter nested list: [[1],[2]]
[[1], [2]]
[1]
Ev. Kounis
Reply   •   2 楼
Ev. Kounis    6 年前

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 grammer指出的那样,您的代码的问题在于您假定 埃瓦 作品 到位 当你这样做的时候 eval(l) l 已修改。 但这不是它的工作原理 . 评价 返回结果并将其分配给 result 在你的代码中。试着去做 print(result[0]) 相反,你会看到。