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

如何按指定规则编辑双元素嵌套列表?

实现思路

给你捋一下这个需求的实现思路,全程不用字典这类结构,纯靠列表操作就能搞定:

第一步:拆分每个条目,提取主体和数值

先给每个条目做拆分,把「描述主体」和「结尾的数值(如果有)」分开:

  • 比如 "Apple 1" 拆成主体"Apple"、数值1;"iced tea 1,5" 拆成主体"iced tea"、数值1.5(注意把逗号换成点转成浮点数方便计算)
  • 像 "onions" 这种没有结尾数值的,就标记为非数值型条目

具体可以用正则表达式匹配,比如用模式 ^(.*?)\s*([\d,]+)$,这个模式能精准捕获前面的描述部分和后面的数值部分。如果匹配失败,就说明该条目没有结尾数值。

第二步:用列表分组统计,不借助字典

初始化一个空的临时列表存分组信息,每个分组可以设为 [category, 主体, 数值总和](非数值型的话数值总和设为None就行)。接着遍历原始列表的每一项:

  1. 先拆分当前项的category、主体、数值(或非数值标记)
  2. 遍历临时分组列表,查找是否存在同category且同主体的分组:
    • 找到的话:如果当前条目是数值型,就把数值加到该分组的总和里;非数值型的话直接跳过(因为重复条目只留一个)
    • 没找到的话:就把当前的category、主体、数值(或标记)作为新分组加入临时列表

第三步:组装成目标格式的嵌套列表

遍历临时分组列表,把每个分组转换成要求的格式:

  • 数值型分组:把主体和求和后的数值拼接,注意如果是小数,要把点换回逗号(比如3.5转成"3,5"),比如用f"{主体} {总和}".replace('.', ',')的方式处理
  • 非数值型分组:直接用主体作为条目内容
  • 最后把每个分组组装成[category, 新条目],加入结果列表

拿示例输入来说:

  • 三个"Apple"条目数值求和1+2+5=8,变成["fruits", "Apple 8"]
  • 两个"iced tea"条目求和1.5+2=3.5,转成["cooled", "iced tea 3,5"]
  • 三个"onions"只保留一个,"Pizza"直接原样保留

这样处理完就完全符合要求,全程只用列表操作,没用到字典等其他数据结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 08:09:22