繁体   English   中英

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

[英]Convert an array of tuples into a hash-map in Clojure

我有一个元组数组,其中每个元组是一个包含键和值的2元组。 将此元组数组转换为哈希图的最干净方法是什么?

user=> (into {} [[:a 1] [:b 2]])
{:a 1, :b 2}

假设“ tupel”的意思是“两个元素数组”:

(reduce 
  (fn [m tupel] 
      (assoc m 
            (aget tupel 0) 
            (aget tupel 1))) 
  {} 
  array-of-tupels)

映射是MapEntry元素的序列。 每个MapEntry是键和值的向量。 问题中的元组已经采用MapEntry的形式,这使事情变得很方便。 (这也是为什么into解决方案是一个很好的解决方案。)

user=> (reduce conj {} [[:a 1] [:b 2]])
{:b 2, :a 1}
user=> (def a [[:a 4] [:b 6]])
user=> (apply hash-map (flatten a))
{:a 4, :b 6}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM