Python 中利用 input 安全输入列表的方法:ast.literal_eval 详解

小鹿同学
小鹿同学
发布时间:2026-10-13 | 5人浏览过
原创

本文介绍在 Python 中如何通过 input 函数接收用户输入的列表数据。重点讲解使用 ast.literal_eval() 将逗号分隔的字符串安全转换为列表的方法,并对比 eval() 函数的潜在风险,强调 ast.literal_eval 在判断数据类型合法性方面的安全性优势,推荐作为标准实践。

Python 中利用 input 安全输入列表的方法

Python 中利用 input 安全输入列表的方法

当需要通过 input 接收数据并构建列表时,可以在输入字符串中使用逗号分隔各个元素,随后调用 ast.literal_eval() 函数将其解析并转换为标准的列表对象。

具体实现代码如下:

代码实现与运行结果


import ast

lists = ast.literal_eval(input("请输入列表,使用逗号隔开: ")) 

print(lists)

程序运行后的输出结果如下:

ast.literal_eval 与 eval 的安全性对比

ast.literal_eval() 的核心功能是将输入的字符串数据还原为其对应的原始数据类型,或者转换为能够合法表示的数据类型。

虽然 eval() 函数也能实现类似的数据转换效果,但两者在安全性机制上存在显著差异:

eval() 函数在执行计算前不会预先验证输入内容是否为合法的 Python 数据类型。它直接在调用时尝试执行表达式,如果输入内容不属于合法的 Python 类型,程序将抛出异常错误。

相比之下,ast.literal_eval 会在计算前严格检查输入内容,确认其转换后是否为合法的 Python 类型。只有当验证通过时才会执行运算,否则直接拒绝处理,从而避免非法代码执行。

基于上述安全机制,强烈推荐使用 ast.literal_eval 来处理用户输入的列表数据。

以上即为 Python 中使用 input 安全输入列表的完整方法说明。如需进一步补充或交流,欢迎联系本站编辑团队。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表