我在 Clojure 中有以下数据结构
{:a [1 2 3]
:b [4 5 6]
:c [7 8 9]}
我想将它转换成类似的东西
[{:a 1 :b 4 :c 7}
{:a 2 :b 5 :c 8}
{:a 3 :b 6 :c 9}]
目前我有点困惑如何做到这一点。
最佳答案
在 Clojure 中,您永远无法保证转换后映射中键的顺序。它们按键索引,而不是按顺序。
然而,向量是。通过get-in
,您可以使用坐标向量查找位置。
=> (def mat
[[1 2 3]
[4 5 6]
[7 8 9]])
=> (defn transpose
[m]
(apply mapv vector m))
=> (get-in (transpose mat) [1 2])
8
关于list - 将列表映射转换为映射列表(即行到列),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14583295/