[英]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.