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

如何基于以'>'开头的元素对Python列表项进行分组合并?

问题解决:合并指定区间内的字符串

给定列表 my_list = ['>A1', 'KKKKKKKK', 'DDDDDDDD', '>A2', 'FFFFFFFF', 'FFFFOOOO', 'DAA', '>A3', 'OOOZDDD', 'KKAZAAA', 'A'],需要将每个>开头元素之后、下一个>开头元素之前的字符串合并,得到目标列表['KKKKKKKKDDDDDDDD', 'FFFFFFFFFFFFOOOODAA', 'OOOZDDDKKAZAAAA']。

原代码的问题

  1. while my_list[item] != '>' 条件逻辑错误:当前item对应的元素已经是>开头的,这个条件永远不满足,导致temp始终为空。
  2. 没有正确遍历后续元素收集内容,也没有在完成一组收集后将temp添加到结果列表的正确时机。

正确实现代码

my_list = ['>A1', 'KKKKKKKK', 'DDDDDDDD', '>A2', 'FFFFFFFF', 'FFFFOOOO', 'DAA', '>A3', 'OOOZDDD', 'KKAZAAA', 'A']

result = []
current_group = ''

for item in my_list:
    if item.startswith('>'):
        # 如果当前组已有内容,先加入结果再重置
        if current_group:
            result.append(current_group)
            current_group = ''
    else:
        # 非>开头的元素,加入当前组
        current_group += item
# 最后一组没有后续的>,需要手动加入结果
if current_group:
    result.append(current_group)

print(result)
# 输出: ['KKKKKKKKDDDDDDDD', 'FFFFFFFFFFFFOOOODAA', 'OOOZDDDKKAZAAAA']

代码说明

  • 用current_group临时存储当前需要合并的字符串。
  • 遍历每个元素时:
    • 遇到>开头的元素,若current_group不为空,说明上一组收集完成,将其加入result并重置current_group。
    • 非>开头的元素直接追加到current_group。
  • 遍历结束后,最后一组没有后续的>触发添加操作,所以需要手动将剩余的current_group加入result。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 04:35:26