我有一個元組數組,其中每個元組都是包含一個鍵和一個值的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