You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何将列表格式字符串转换为对应元素类型的原生列表

Python字符串形式列表转原生列表实现方案

优先使用Python标准库ast模块的literal_eval方法实现,该方法可以安全解析字符串格式的Python字面量(列表、字典、数字、字符串等),兼容你提到的两种场景,且不存在eval()方法执行任意恶意代码的安全风险。


场景1:浮点数列表字符串转换

代码示例:

import ast

# 输入的字符串格式浮点列表
float_str = '[0.71641791, 0.71641791, 0.71641791, 0.69565217, 0.69565217]'
float_result = ast.literal_eval(float_str)

print(float_result)
# 输出: [0.71641791, 0.71641791, 0.71641791, 0.69565217, 0.69565217]
print(type(float_result[0]))
# 输出: <class 'float'> 符合元素类型要求

场景2:字符串元素列表转换

代码示例:

import ast

# 输入的字符串格式字母列表
str_list_input = "['a', 'b', 'c', 'd', 'e']"
str_result = ast.literal_eval(str_list_input)

print(str_result)
# 输出: ['a', 'b', 'c', 'd', 'e']
print(type(str_result[0]))
# 输出: <class 'str'> 符合元素类型要求

其他可选方案(不推荐优先使用)

如果不想导入标准库,也可以通过字符串裁剪、分割手动实现,但容错性低,仅适合格式完全固定的简单场景:

  • 浮点数列表手动处理:
    float_str = '[0.71641791, 0.71641791, 0.71641791, 0.69565217, 0.69565217]'
    float_result = [float(item.strip()) for item in float_str.strip('[]').split(',')]
    
  • 字符串列表手动处理:
    str_list_input = "['a', 'b', 'c', 'd', 'e']"
    str_result = [item.strip().strip("'") for item in str_list_input.strip('[]').split(',')]
    

注意:绝对不要直接使用内置eval()处理来源不可信的字符串,该方法会直接执行字符串内的任意代码,存在严重安全漏洞。

内容的提问来源于stack exchange,提问作者sudojarvis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 01:57:22