如何在飞镖列表中获取重复值的总和?

Posted

技术标签:

【中文标题】如何在飞镖列表中获取重复值的总和?【英文标题】:how to get the sum of duplicate values in a list in dart? 【发布时间】:2021-02-05 11:43:18 【问题描述】:

我想获取重复值的总和并将它们放在另一个列表中.. 有可能吗?

List list = [1, 1 , 2, 3,2];
List newList = [2,4,3];

【问题讨论】:

确保使用来自collection库的groupBy***函数 print(groupBy([1,1,2,3,2], (e) => e).values.map((e) => e.reduce((sum, e) => sum + e))); 【参考方案1】:

当然,这是可能的。您可以定义一个临时列表以防止列表中出现重复项。试试这个:

List list = [1, 1, 2, 3, 2];
List tempList = [];
List newList = [2, 4, 3];

for (var item in list) 
  if (!tempList.contains(item)) 
    newList.add(list.where((e) => e == item).length * item);
    tempList.add(item);
  

【讨论】:

这是groupBy 的用途:print(groupBy([1,1,2,3,2], (e) => e).values.map((e) => e.reduce((sum, e) => sum + e))); 或您的(更快)方式:print(groupBy([1,1,2,3,2], (e) => e).values.map((e) => e[0] * e.length)); 你太棒了:)

以上是关于如何在飞镖列表中获取重复值的总和?的主要内容,如果未能解决你的问题,请参考以下文章

如何删除列表中重复的构造对象,同时保留顺序并在飞镖中返回列表?

如何不在列表飞镖中重复相同的项目?

如何对实例类列表进行排序取决于其在飞镖或颤振中的属性[重复]

如何在列表中获取特定值的索引 - python [重复]

计算recyclerview项目双精度值的总和

在c#MVC4中获取列表框中所选值的总和