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

Python:合并列表中复杂格式字符串元素的方法问询

处理分组字符串列表的Python实现

原始输入数据

你的输入是一个包含字符串的列表,每个字符串模拟了多组子列表的结构:

original_list = [
    "['P431', 'N7260', 'K492'], ['R109', 'T075X9A'], ['U8154', 'C861']",
    "['R878X8', 'T61'], ['F6332', 'Q7979'], ['L520'], ['B7939', 'K5132']"
]

需求说明

对列表中的每个元素(即每组字符串):

  • 将除最后一个子列表外的所有子列表元素,合并为一个用空格分隔的字符串
  • 将最后一个子列表的元素,单独合并为另一个用空格分隔的字符串
  • 最终把这两个字符串组成一个子列表,所有组的结果汇总成一个大列表

解决方案代码

import ast

original_list = [
    "['P431', 'N7260', 'K492'], ['R109', 'T075X9A'], ['U8154', 'C861']",
    "['R878X8', 'T61'], ['F6332', 'Q7979'], ['L520'], ['B7939', 'K5132']"
]

result = []
for item_str in original_list:
    # 把字符串转换成真正的Python列表
    groups = ast.literal_eval(f"[{item_str}]")
    # 合并除最后一个外的所有子列表元素
    first_part = []
    for sub_group in groups[:-1]:
        first_part.extend(sub_group)
    first_str = ' '.join(first_part)
    # 合并最后一个子列表元素
    second_str = ' '.join(groups[-1])
    # 收集当前组的结果
    result.append([first_str, second_str])

print(result)

代码解释

  1. 导入ast模块:ast.literal_eval()是安全的字符串转Python对象的方法,不会执行恶意代码,适合处理这种模拟列表格式的字符串。
  2. 遍历原始列表:逐个处理每个分组字符串。
  3. 字符串转列表:用f"[{item_str}]"把每个字符串包裹成完整的列表格式,再通过ast.literal_eval()转换成可操作的Python列表对象。
  4. 合并第一部分内容:groups[:-1]取到除最后一个子列表外的所有子列表,用extend()把所有子列表的元素整合到同一个列表,再用' '.join()转换成空格分隔的字符串。
  5. 合并第二部分内容:直接取最后一个子列表groups[-1],用' '.join()合并成字符串。
  6. 收集最终结果:把每一组的两个字符串组成子列表,添加到最终结果列表中。

运行代码后,输出结果与需求一致:

[['P431 N7260 K492 R109 T075X9A', 'U8154 C861'], ['R878X8 T61 F6332 Q7979 L520', 'B7939 K5132']]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 10:35:09