我有一个元组数组,其中每个元组都是包含一个键和一个值的2元组。将这个元组数组转换为哈希映射的最简洁方法是什么?在Clojure中将元组数组转换为哈希映射
33
A
回答
47
user=> (into {} [[:a 1] [:b 2]])
{:a 1, :b 2}
5
假设 “三元组” 是指 “双elememt阵列”:
(reduce
(fn [m tupel]
(assoc m
(aget tupel 0)
(aget tupel 1)))
{}
array-of-tupels)
4
user=> (def a [[:a 4] [:b 6]])
user=> (apply hash-map (flatten a))
{:a 4, :b 6}
+2
`flatten`对于这个问题是矫枉过正的。您可以利用以MapEntry(键和值的向量)形式存在的元组。 – miner49r 2011-04-22 19:12:08
+1
永远不要使用`flatten`来处理这样的情况:如果它们碰巧是数据结构,它将会愉快地平滑所有的键和值。 – 2016-07-07 20:36:15
5
地图是MapEntry元素的序列。每个MapEntry都是一个键和值的向量。问题中的元组已经以MapEntry的形式出现,这使得方便。 (这也是为什么into
解决方案是好的。)
user=> (reduce conj {} [[:a 1] [:b 2]])
{:b 2, :a 1}
相关问题
- 1. 从哈希映射转换为数组
- 2. 将哈希映射转换为二维数组
- 3. 将数组转换为哈希数组
- 4. 将哈希数组转换为数组
- 5. 扭转哈希映射Clojure中
- 6. 将可变哈希映射转换为不可变哈希映射
- 7. 在Perl中,如何将哈希数组转换为值数组?
- 8. 将字符串转换为元组,哈希或数组
- 9. 安全地转换为哈希映射
- 10. 将静态二维字符串数组转换为哈希映射
- 11. 如何将哈希键数组的python哈希转换为数组?
- 12. 哈希数组转换
- 13. 在android中哈希映射数组列表到JSON数组?
- 14. 将数组插入哈希映射而不创建新数组
- 15. F Sharp将元组列表转换为映射元组列表
- 16. 如何将对象数组转换为哈希数组?
- 17. 将数组与哈希映射进行比较,并从哈希中删除哈希元素
- 18. 哈希值的数组转换为csv
- 19. 如何将一个数组转换为哈希键和另一个数组转换为相同哈希的值?
- 20. 为什么Clojure将xml文档表示为哈希映射?
- 21. 如何在Rails中将哈希数组转换为XML?
- 22. 在Ruby中将大尺寸数组转换为哈希
- 23. 在哈希数组中转换红宝石嵌套哈希
- 24. Clojure遍历哈希映射列表
- 25. Clojure构建2D哈希映射
- 26. 哈希值映射值转换错误
- 27. 将映射列表转换为映射到原始数组
- 28. 如何将哈希映射数组插入到Redis中? (Node.js的)
- 29. 转换数组的数组与第一个数组的元素哈希作为重点哈希
- 30. 使用jackson jersey将复杂哈希映射转换为JSON
不错。如果你的(对于OP)“数组”实际上是一个seq,而不是`(age t n)`,你可以使用`(t n)`,这有点漂亮。 – Isaac 2010-12-01 20:49:10
`(t n)`不适用于序列。它与矢量。但是,你可以简单地使用`(进入{}向量数组')而不是`reduce'。 – kotarak 2010-12-02 14:12:42