有没有快速的转换方法
[["a" "b"]
["c" "d"]
["e" "f"]]
到
[["a" "c" "e"]
["b" "d" "f"]]
答案 0 :(得分:4)
(use '[clojure.core.matrix])
(let [a [["a" "b"]
["c" "d"]
["e" "f"]]]
(transpose a))
答案 1 :(得分:1)
这是将变体map
(或mapv
)与apply
一起使用的方法:
(apply mapv vector [["a" "b"]
["c" "d"]
["e" "f"]])
=> [["a" "c" "e"] ["b" "d" "f"]]
答案 2 :(得分:0)
InkWell(
onTap: () => print("image clicked"),
child: CircleAvatar(
backgroundImage: ExactAssetImage('assets/cat.jpg'),
radius: 55,
),
),
如果要对2D“数组”(向量的向量)进行一般操作,请参见tupelo.arrays(例如,(def x [["a" "b"]
["c" "d"]
["e" "f"]] )
(def y [ (mapv first x)
(mapv second x) ] ) ; or just `map`
(println y)
=> [[a c e] [b d f]]
函数)。
答案 3 :(得分:-2)
我不认为有“快速”的方法,因为数组具有固定的长度,该长度在初始化时分配给某些内存。必须从当前数组中提取数据,然后必须初始化不同大小的数组并用提取的数据填充。在许多编程语言中都有各种各样的“(非)打包”函数,但是您可能需要在需要灵活的容器时考虑使用列表:可以在O(1)时间内完成链接列表中元素的添加或删除。