如何在Python中将字符串格式的数组转换为可直接索引的普通列表
Python字符串格式嵌套结构转原生列表的方法
你需要将符合Python字面值格式的字符串转为原生列表,有两种常用实现方案:
方案1:使用ast.literal_eval(首选,安全)
这是Python官方推荐的安全解析字面值的方案,仅会解析列表、元组、字典、数字、字符串这类合法Python字面值,不会执行任意代码,无安全风险:
- 实现代码:
import ast # 你的原始字符串 a_str = "[(1,2),(2,3),(3,4)]" # 转换为原生列表 a = ast.literal_eval(a_str) # 验证效果 print(a) # 输出 [(1, 2), (2, 3), (3, 4)] print(a[1]) # 输出 (2, 3),可直接通过索引访问 print(type(a[0])) # 输出 <class 'tuple'>,元组结构保留
方案2:使用eval(不推荐,仅作参考)
如果你能100%确保输入字符串无恶意代码,可以直接用eval转换,但生产环境禁止使用该方案,一旦输入包含恶意代码会直接执行,造成安全问题:
- 实现代码:
a_str = "[(1,2),(2,3),(3,4)]" a = eval(a_str)
内容的提问来源于stack exchange,提问作者Chetan Warke
相关产品推荐
相关产品推荐

