【发布时间】:2021-02-15 11:58:06
【问题描述】:
所以我有一个地图列表:List[Map[String, Double]]。 一个例子是:
List(Map("A" -> 1.1, "B" -> 2.5, "E" -> 3.5, "C" -> 1.6, "D" -> 0.9),
Map("A" -> 0.8, "C" -> 2.1, "D" -> 2.8),
Map("C" -> 2.2, "D" -> 2.9, "A" -> 3.4),
Map("B" -> 0.4, "D" -> 1.8, "E" -> 0.234, "A" -> 3.7))
我想要做的是将所有地图的交集放在一起,所以它看起来像:
For example, for A: (1.1 + 0.8 + 3.4 + 3.7)/4 = 2.25
for D: (0.9 + 2.8 + 2.9 + 1.8)/4 = 2.1
List(Map("A" -> 2.25,"D" -> 2.1))
有没有办法只使用内置函数来获取上面地图的相交列表?这些值是四个地图组合中所有键的平均值。
【问题讨论】:
-
相交到底是什么意思?你从哪里得到
2.25和2.1?如果你有一个函数f已经与两个地图相交,你可以做list.reduce(f)或list.foldLeft(Map())(f) -
我知道您只想获取重复的键,但是值的逻辑是什么?均值? - 另外,你对外部图书馆开放吗? x a 没有开箱即用的 std 函数,但 cata 确实提供了更接近的东西。
-
尽可能不使用外部库。是否可以使用 intersect() 函数和添加的其他函数来做到这一点?