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

如何对嵌套元组列表按指定字段分组并对整数项求和

实现方案
  • 第一步:先将嵌套的二维列表打平为一维元组列表,使用flatten方法即可完成。
  • 第二步:使用groupBy方法按元组的前两个元素分组,分组键取每个元组的第一个和第二个元素组成的二元组。
  • 第三步:对每个分组内的所有元组,提取第三个整数元素求和,再将分组键和求和结果拼接为新的三元组。
  • 第四步:将最终的Map结构转为List即可得到目标结果。

完整代码示例

// 原始输入列表
val originalList = List(
  List(("hello", "goodbye", 12), ("hello", "goodbye", 15)),
  List(("hello", "test", 18), ("hello", "test", 20)),
  List(("something", "different", 30), ("something", "different", 18))
)

// 处理逻辑
val result = originalList
  .flatten // 打平为一维元组列表
  .groupBy(tuple => (tuple._1, tuple._2)) // 按元组前两个元素分组
  .map { case ((key1, key2), tupleList) => 
      (key1, key2, tupleList.map(_._3).sum) // 对分组内第三个元素求和生成新三元组
  }
  .toList

// 输出结果与预期完全一致:List((hello,goodbye,27), (hello,test,38), (something,different,48))
println(result)

如果需要严格保持原始分组的出现顺序,可以在转List后补充排序逻辑:

val orderedResult = result.sortBy(item => (item._1, item._2))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 20:06:03