在Clojure中将元组数组转换为哈希映射

时间:2010-12-01 20:22:13

标签: clojure map hashmap tuples

我有一个元组数组,其中每个元组都是一个带有键和值的2元组。将这个元组数组转换为哈希映射的最简洁方法是什么?

4 个答案:

答案 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}
相关问题