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

如何将含集合列表的字符串转为列表且保留集合内元素顺序?

保留集合字符串中元素顺序的解决方案

因为Python的set本身是无序容器(即使3.7+版本的set会保留插入顺序,但ast.literal_eval解析字符串中的集合时,并不会遵循原字符串里的元素顺序),所以不能通过解析集合的方式来保留顺序,直接对字符串进行结构处理是更可靠的方式。

以下是两种可行的实现方法:

方法一:正则表达式匹配替换

通过正则提取每个集合内的元素内容,再重新用方括号包裹:

import re

# 原始字符串(注意去掉外层的单引号,实际使用时根据输入调整)
input_str = '[{13,18},{14,19}]'

# 匹配所有{...}格式的内容,提取内部元素
element_groups = re.findall(r'\{([^}]+)\}', input_str)

# 将每个元素组用方括号包裹,组成目标列表
result = [f'[{group}]' for group in element_groups]
print(result)  # 输出: ['[13,18]', '[14,19]']

方法二:字符串分割与替换

直接修改字符串中的括号符号,再拆分出每个元素:

input_str = '[{13,18},{14,19}]'

# 去掉字符串首尾的[],拆分出每个集合的内容
inner_content = input_str.strip('[]')
item_list = inner_content.split('},{')

# 给每个元素添加方括号,组成结果列表
result = [f'[{item}]' for item in item_list]
print(result)  # 输出: ['[13,18]', '[14,19]']

这两种方法都不会解析为set类型,而是直接保留原字符串中的元素顺序,完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 02:20:16