Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir:如何反转贴图(交换键和值)?_Elixir - Fatal编程技术网

Elixir:如何反转贴图(交换键和值)?

Elixir:如何反转贴图(交换键和值)?,elixir,Elixir,我有一张这样的地图: %{ "US" => "United States", "CA" => "Canada", "NL" => "The Netherlands" } %{ "United States" => "US", "Canada" => "CA", "The Netherlands" => "NL" } 我希望将键与值交换,从而生成如下映射: %{ "US" => "United States", "CA"

我有一张这样的地图:

%{
  "US" => "United States",
  "CA" => "Canada",
  "NL" => "The Netherlands"
}
%{
  "United States" => "US",
  "Canada" => "CA",
  "The Netherlands" => "NL"
}
我希望将键与值交换,从而生成如下映射:

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

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

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

Map.new(map, fn {key, val} -> {val, key} end)
更多方法:

  • :

  • 理解:

    for {k, v} <- map, into: %{}, do: {v, k}
    
    {k,v}的