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

Python中拆分列表含X元素并合并相邻重复项问题求助

解决方案:拆分带X的元素并合并相邻重复项

第一步:拆分含X的元素

遍历原始列表,对每个元素做判断:如果包含字符X,就拆分成重复次数和目标值,生成对应数量的元素;否则直接保留原元素。

示例代码:

a = ['3X0', '0', '0.7596', '0.7525', '2X0', '0', '0', '0', '0.7543', '2X0.1', '0.1']
a_break = []

for item in a:
    if 'X' in item:
        # 拆分次数和值
        count, val = item.split('X')
        # 生成对应数量的元素加入列表
        a_break.extend([val] * int(count))
    else:
        a_break.append(item)

print(a_break)
# 输出: ['0', '0', '0', '0', '0.7596', '0.7525', '0', '0', '0', '0', '0', '0.7543', '0.1', '0.1', '0.1']

第二步:合并相邻相同元素

遍历拆分后的列表,跟踪当前元素及其连续出现的次数,遇到不同元素时,将当前统计结果(次数>1时转为{count}X{val}格式,否则直接保留元素)加入最终列表,然后更新跟踪的元素和次数。

示例代码:

final_a = []
if not a_break:
    print(final_a)
    exit()

current_val = a_break[0]
current_count = 1

for val in a_break[1:]:
    if val == current_val:
        current_count += 1
    else:
        # 处理当前统计项
        if current_count > 1:
            final_a.append(f"{current_count}X{current_val}")
        else:
            final_a.append(current_val)
        # 更新跟踪项
        current_val = val
        current_count = 1

# 处理最后一组元素
if current_count > 1:
    final_a.append(f"{current_count}X{current_val}")
else:
    final_a.append(current_val)

print(final_a)
# 输出: ['4X0', '0.7596', '0.7525', '5X0', '0.7543', '3X0.1']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 10:45:34