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

如何用Python合并文本重复子串并求和对应关联数值?

解决方案

对于你这种需求,用Python的字典来处理是最直观的,步骤简单易懂,适合初学者上手:

步骤拆解

  • 分割字符串:先把输入的长字符串拆成单个的颜色: 数值项,清理掉末尾多余的分号和无效空格。
  • 累加数值:用字典存储每个颜色对应的数值总和,遍历拆分后的项,把数值转成整数后累加。
  • 生成结果字符串:把字典里的键值对重新格式化成要求的字符串样式。

完整代码示例

# 输入的原始文本
input_text = "Blue: 4; Red: 1; Red: 2; Green: 3; Yellow: 10; Yellow: 15;"

# 初始化空字典,用来存颜色和对应的数值总和
color_total = {}

# 拆分字符串:先去掉末尾的分号,再按"; "分割成单个项
items = input_text.rstrip(';').split('; ')

# 遍历每个项,处理颜色和数值
for item in items:
    # 拆分颜色和数值,按": "分割
    color, num_str = item.split(': ')
    # 把字符串转成整数
    num = int(num_str)
    # 累加数值:颜色已存在就加,不存在就初始化
    if color in color_total:
        color_total[color] += num
    else:
        color_total[color] = num

# 生成最终结果字符串
result = '; '.join([f"{color}: {total};" for color, total in color_total.items()])

# 输出结果
print(result)

运行结果

运行代码后会输出:

Blue: 4; Red: 3; Green: 3; Yellow: 25;

补充说明

  • rstrip(';')是为了去掉原始字符串末尾多余的分号,避免拆分后出现空字符串。
  • split('; ')能精准拆分每个颜色: 数值项,因为每个项之间都是"; "(分号加空格)的格式。
  • 字典的in操作可以快速判断颜色是否已存在,实现累加逻辑。
  • 最后用join+格式化字符串生成结果,比循环拼接字符串更高效简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 01:01:13