Clojure:将对/ n元组的列表转换为列表的n元组

wir*_*bel 2 list vector clojure clojurescript

给出一个n元组的列表,

[[1, "a"], [2, "b"], [3, "c"]]
Run Code Online (Sandbox Code Playgroud)

我想获得

[[1, 2, 3]["a", "b", "c"]]
Run Code Online (Sandbox Code Playgroud)

我认为这可能是std中的一个函数.库,就像它在python中一样zip(*lst).但不幸的是我找不到它.

否则我想我可以想出一个使用reduce等的实现.但我更喜欢标准的clojure函数:)

Lee*_*Lee 7

(apply map vector [[1, "a"], [2, "b"], [3, "c"]])
Run Code Online (Sandbox Code Playgroud)

如果你需要一个矢量,你可以使用mapv:

(apply mapv vector [[1, "a"], [2, "b"], [3, "c"]])
Run Code Online (Sandbox Code Playgroud)