我有这样的地图:
%{
"US" => "United States",
"CA" => "Canada",
"NL" => "The Netherlands"
}
Run Code Online (Sandbox Code Playgroud)
我想用值交换键,得到这样的映射:
%{
"United States" => "US",
"Canada" => "CA",
"The Netherlands" => "NL"
}
Run Code Online (Sandbox Code Playgroud)
像这样“反转”或“反转”地图的最佳方法是什么?我在任何地方都没有看到专用的功能。
一种简单的方法是使用Map.new. 它需要一个函数,您可以在其中为每对指定新的键和值:
Map.new(map, fn {key, val} -> {val, key} end)
Run Code Online (Sandbox Code Playgroud)
更多方法:
Enum.into(map, %{}, &{elem(&1, 1), elem(&1, 0)})
Run Code Online (Sandbox Code Playgroud)for {k, v} <- map, into: %{}, do: {v, k}
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
99 次 |
| 最近记录: |