我有一个元组数组,其中每个元组都是包含一个键和一个值的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. 扭转哈希映射Clojure中
- 2. 将静态二维字符串数组转换为哈希映射
- 3. 哈希数组转换
- 4. 将数组插入哈希映射而不创建新数组
- 5. F Sharp将元组列表转换为映射元组列表
- 6. 如何将对象数组转换为哈希数组?
- 7. 如何在Rails中将哈希数组转换为XML?
- 8. 在哈希数组中转换红宝石嵌套哈希
- 9. Clojure遍历哈希映射列表
- 10. Clojure构建2D哈希映射
- 11. 哈希值映射值转换错误
- 12. 将映射列表转换为映射到原始数组
- 13. 转换数组的数组与第一个数组的元素哈希作为重点哈希
- 14. 将ArrayList /哈希映射转换为结果集
- 15. 将MD5哈希映射到一组整数
- 16. 如何将一组映射键转换为数组列表
- 17. 转换哈希到一个数组
- 18. 帮助转换数组和哈希
- 19. 转换散列哈希数组Ruby Ruby
- 20. 如何将Textview数组列表转换为哈希集?
- 21. 我该如何将这个Ruby哈希转换为数组?
- 22. 通过循环将红宝石数组转换为哈希
- 23. 将哈希和符号数组转换为唯一
- 24. 如何将数组转换为红宝石键值对哈希
- 25. 将md5哈希字节数组转换为字符串
- 26. 转换键数组和值数组到哈希Ruby中
- 27. 将元素添加到哈希映射的值数组时遇到错误
- 28. 如何将映射转换为java中的二维数组?
- 29. Python中的哈希映射
- 30. 将哈希数组转换为散列哈希,通过哈希的属性进行索引
不错。如果你的(对于OP)“数组”实际上是一个seq,而不是`(age t n)`,你可以使用`(t n)`,这有点漂亮。 – Isaac 2010-12-01 20:49:10
`(t n)`不适用于序列。它与矢量。但是,你可以简单地使用`(进入{}向量数组')而不是`reduce'。 – kotarak 2010-12-02 14:12:42