我有一个元组数组,其中每个元组都是一个带有键和值的2元组。将这个元组数组转换为哈希映射的最简洁方法是什么?
答案 0 :(得分:48)
user=> (into {} [[:a 1] [:b 2]])
{:a 1, :b 2}
答案 1 :(得分:5)
假设“元组”表示“双元素数组”:
(reduce
(fn [m tupel]
(assoc m
(aget tupel 0)
(aget tupel 1)))
{}
array-of-tupels)
答案 2 :(得分:5)
地图是一系列MapEntry元素。每个MapEntry都是键和值的向量。问题中的元组已经是MapEntry的形式,这使事情变得方便。 (这也是into
解决方案很好的原因。)
user=> (reduce conj {} [[:a 1] [:b 2]])
{:b 2, :a 1}
答案 3 :(得分:3)
user=> (def a [[:a 4] [:b 6]])
user=> (apply hash-map (flatten a))
{:a 4, :b 6}