Elixir: Merge list with same map keys to one map
问题 How can I convert this list in elixir [ %{key1: 1, key2: 2, key3: 3}, %{key1: 4, key2: 5, key3: 6}, %{key1: 7, key2: 8, key3: 9} ] to this map %{key1: [1, 4, 7], key2: [2, 5, 8], key3: [3, 6, 9]) ? 回答1: Enum.reduce(input, %{key1: [], key2: [], key3: []}, fn m, acc -> Map.merge(acc, m, fn _k, v1, v2 -> v1 ++ [v2] end) end) #⇒ %{key1: [1, 4, 7], key2: [2, 5, 8], key3: [3, 6, 9]} or, without preliminar hardcoded accumulator: Enum.reduce(input, %{}, fn m, acc -> Map.merge(acc, m, fn _k, v1, v2