Python中如何将列表格式的string字符串转换为实际的list数组
问题原因
你直接调用list()转换字符串时,Python会将字符串作为字符序列处理,逐字符拆分生成列表,自然无法得到结构化的整数数组。你需要先解析字符串内的列表字面量结构,或者手动提取数字转换类型即可。
解决方法
方法1:使用ast.literal_eval(最推荐)
这个方法专门用于安全解析Python字面量表达式,相比eval不会执行任意恶意代码,适配性最高。
import ast # 注意不要用str作为变量名,会覆盖Python内置的str类型 str_data = "[3705049, 3705078, 3705082, 3705086, 3705093, 3705096]" arr = ast.literal_eval(str_data) print(arr) # 输出:[3705049, 3705078, 3705082, 3705086, 3705093, 3705096]
方法2:手动字符串处理(无需引入额外模块)
如果确定字符串格式固定为数字列表,可以手动清理字符串后逐个转换类型:
str_data = "[3705049, 3705078, 3705082, 3705086, 3705093, 3705096]" # 先去掉首尾的方括号,按逗号分割后逐个清理空格、转成整数 arr = [int(item.strip()) for item in str_data.strip('[]').split(',')] print(arr) # 输出:[3705049, 3705078, 3705082, 3705086, 3705093, 3705096]
内容的提问来源于stack exchange,提问作者Kanchon Gharami
相关产品推荐
相关产品推荐

