什么是转换像 [1,2,3,4]
这样的列表的优雅、有效的方法?进入 map %{1=>2, 3=>4}
?我写了这个:
Enum.reduce([1,2,3,4],%{}, fn(item, acc) ->
case Map.get(acc, :last) do
nil ->
Map.put(acc, :last, item)
last ->
acc = Map.put(acc, item, last)
Map.drop(acc, [:last])
end
end)
但这似乎不是很优雅。有没有更优雅和更清洁的方式来做到这一点?
最佳答案
您可以使用 Enum.chunk_every/2
:
[1, 2, 3, 4]
|> Enum.chunk_every(2)
|> Enum.map(fn [a, b] -> {a, b} end)
|> Map.new
关于Elixir - 将列表转换为 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42262115/