首页 > 解决方案 > 将此列表转换为集合向量

问题描述

有谁知道如何将此向量列表转换为集合向量?

([#{2}] [#{1 2 3 4}] [#{5}] [#{3}])

结果应该是

[#{2} #{1 2 3 4} #{5} #{3}]

标签: clojure

解决方案


多种方法来实现这一点。这取决于您的需求,您使用什么方法:

(def data '([#{2}] [#{1 2 3 4}] [#{5}] [#{3}]))

;; If you have a list of single element lists:
(mapv first data) ;; => [#{2} #{1 2 3 4} #{5} #{3}]

;; If you have a list of multiple element lists:
(vec (apply concat data)) ;; => [#{2} #{1 2 3 4} #{5} #{3}]

;; If you also want to handle multiple levels of nesting:
(vec (flatten data)) ;; => [#{2} #{1 2 3 4} #{5} #{3}]

;; If you ..;
(transduce (map first) conj data) ;; => [#{2} #{1 2 3 4} #{5} #{3}]

推荐阅读