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

技术求助:如何将列表内的字符串形式列表元素转换为实际列表

解决字符串列表转实际列表对象的问题

嗨,我来帮你搞定这个问题!你现在需要把那些字符串格式的列表元素转换成真正的Python列表对象,这里有几种靠谱的方法,你可以试试:

方法1:用ast.literal_eval(推荐,安全可靠)

这个方法是Python官方推荐的,用来解析字符串形式的Python字面量,比直接用eval安全得多,不会执行恶意代码。

import ast

list1 = ['[206,397]', '[207,397]', '[208,397]', '[209,397]', '[210,397]', '[211,399]']
# 用列表推导式遍历每个元素,转换后生成新列表
converted_list = [ast.literal_eval(item) for item in list1]
print(converted_list)
# 输出:[[206, 397], [207, 397], [208, 397], [209, 397], [210, 397], [211, 399]]

方法2:用json.loads(适合JSON格式的字符串)

你的这些字符串刚好符合JSON数组的格式,所以也可以用JSON模块来解析:

import json

list1 = ['[206,397]', '[207,397]', '[208,397]', '[209,397]', '[210,397]', '[211,399]']
converted_list = [json.loads(item) for item in list1]
print(converted_list)

方法3:手动解析(无需额外模块)

如果不想引入额外模块,也可以手动处理字符串:

list1 = ['[206,397]', '[207,397]', '[208,397]', '[209,397]', '[210,397]', '[211,399]']
converted_list = []
for item in list1:
    # 去掉字符串首尾的[],按逗号分割成数字字符串,再转成整数
    num_strings = item.strip('[]').split(',')
    converted_item = [int(num) for num in num_strings]
    converted_list.append(converted_item)
print(converted_list)

关于你之前遇到的问题

你说第一种方法执行后list1没变化,大概率是因为你没有把转换后的结果赋值给新变量或者更新原列表。比如如果只是单独调用ast.literal_eval(item)而不保存结果,原列表里的字符串元素是不会自动变成列表的——毕竟字符串是不可变类型,得手动生成新的列表来存储转换后的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:28:19