gpt4 book ai didi

clojure - 如何将嵌套向量转换为向量映射?

转载 作者:行者123 更新时间:2023-12-05 08:54:51 26 4
gpt4 key购买 nike

鉴于我有以下形式:

(def data-points [[1483249740 "ONE"]
[1483249680 "TWO"]
[1483249620 "THREE"]
[1483249560 "FOUR"]])

我怎样才能将这些数据转换成这个?

{:data  [1483249740 1483249680 1483249620 1483249560] 
:value ["ONE" "TWO" "THREE" "FOUR"]}

我也想知道如何处理类似的问题。你用什么方法来分解它,我需要知道什么函数来转换任何数据。

我是 clojure 的新手,还没有找到令人满意的解决方案。
谢谢

最佳答案

我会用这个:

(zipmap [:data :value] (apply map vector data-points))

;;=> {:data [1483249740 1483249680 1483249620 1483249560],
;; :value ["ONE" "TWO" "THREE" "FOUR"]}

它对数据集合使用单次传递,但比归约更简洁,但在性能方面应该没有差异

片段 (apply map vector data) 是在 clojure 中转置矩阵的一种非常惯用的方法(在您的情况下,这就是您所需要的,因为它将列转换为行)

user> (apply map vector [[:a 1] [:b 2] [:c 3]])
;;=> ([:a :b :c] [1 2 3])

关于clojure - 如何将嵌套向量转换为向量映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48271853/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com