我有一個Map [String,Double]列表,我想將它們的內容合併到一個Map [String,Double]中。我應該如何用慣用的方式來做到這一點?我想我應該能夠做到這一點。類似於:Scala:如何合併地圖集合
val newMap = Map[String, Double]() /: listOfMaps { (accumulator, m) => ... }
此外,我想以通用方式處理關鍵衝突。也就是說,如果我將一個鍵添加到已存在的映射中,我應該能夠指定一個返回Double的函數(在這種情況下),並將該鍵的現有值加上我試圖添加的值。如果密鑰尚未存在於地圖中,則只需添加它,並且其值不變。
在我的具體情況下,我想建立一個Map [String,Double],如果地圖已經包含一個鍵,那麼Double將被添加到現有的地圖值。
我正在使用特定代碼中的可變映射,但如果可能的話,我對更通用的解決方案感興趣。
這正是我最初想要做的。我不認爲要在那裏放置理解 - 我仍然習慣於像這樣使用它們,但它是有道理的。在這種情況下,我可以看到它與Python的列表解析非常相似,我對此更爲自在。也就像在調用。+()內部的表達式中使用result-bearing一樣。 – Jeff 2009-08-12 19:04:53
乾淨的答案。榮譽 – 2017-09-22 17:25:41