首页 > 解决方案 > Elixir:如何反转映射(交换键和值)?

问题描述

我有一张这样的地图:

%{
  "US" => "United States",
  "CA" => "Canada",
  "NL" => "The Netherlands"
}

我想用值交换键,得到这样的映射:

%{
  "United States" => "US",
  "Canada" => "CA",
  "The Netherlands" => "NL"
}

像这样“反转”或“反转”地图的最佳方法是什么?我在任何地方都看不到它的专用功能。

标签: elixir

解决方案


一种简单的方法是使用Map.new. 它需要一个函数,您可以在其中为每对指定新的键和值:

Map.new(map, fn {key, val} -> {val, key} end)

推荐阅读