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

Python中如何将列表的列表格式字符串转为真实列表的列表?

把字符串形式的嵌套列表转换成Python列表的简便方法

遇到这种字符串格式的嵌套列表,其实有几个非常简便且安全的方法,我给你列两个最常用的:

方法一:使用ast.literal_eval()(首推!)

这个方法是Python标准库ast模块提供的,专门用来解析字符串形式的Python字面量(比如列表、字典、元组这类结构),核心优势是不会执行恶意代码,比直接用eval()安全太多。

举个实际例子,假设你拿到的字符串是这样的:

str_nested_list = "[[1, 2, 3], [4, 5, 6], ['apple', 'banana']]"

只需要几行代码就能完成转换:

import ast

actual_list = ast.literal_eval(str_nested_list)
print(type(actual_list))  # 输出 <class 'list'>,确认是列表类型
print(actual_list)        # 输出 [[1, 2, 3], [4, 5, 6], ['apple', 'banana']]

不管嵌套列表里是数字、字符串还是混合类型,只要格式是合法的Python列表格式,这个方法都能完美解析。

方法二:使用json.loads()(适合标准JSON格式的字符串)

如果你的字符串是标准的JSON格式(比如所有字符串用双引号包裹),那用json模块的loads()方法也可行。不过要注意:JSON只认双引号,要是你的字符串里用的是单引号,得先把单引号替换成双引号再处理。

比如你的字符串是单引号版本:

str_nested_list = "[[1, 2], ['cat', 'dog']]"

转换代码如下:

import json

# 先替换单引号为双引号,适配JSON格式要求
formatted_str = str_nested_list.replace("'", '"')
actual_list = json.loads(formatted_str)
print(actual_list)  # 输出 [[1, 2], ['cat', 'dog']]

为什么不推荐直接用eval()?

虽然eval(str_nested_list)也能实现转换,但如果这个字符串来自不可信的来源(比如用户输入、网络消息),里面可能藏着恶意代码,eval()会直接执行,存在极大安全风险。所以强烈建议用上面两种更安全的方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:11:27