Ну, теперь в библиотеке scala (по крайней мере, в 2.10) есть что-то, что вы хотели - объединенная функция. НО он представлен только в HashMap, а не в Map. Это несколько запутанно. Также подпись громоздка - не могу представить, почему мне нужен ключ дважды, и когда мне нужно будет создать пару с другим ключом. Но, тем не менее, он работает и намного чище, чем предыдущие «родные» решения.
val map1 = collection.immutable.HashMap(1 -> 11 , 2 -> 12)
val map2 = collection.immutable.HashMap(1 -> 11 , 2 -> 12)
map1.merged(map2)({ case ((k,v1),(_,v2)) => (k,v1+v2) })
Также в scaladoc упоминалось, что
Метод
blockquote>merged
в среднем более эффективен чем совершать обход и восстанавливать новую неизменяемую хэш-карту с нуля или++
.
Попробуйте использовать следующий код
import matplotlib as plt
% matpllotlib inline