如何在clojure中将列表转换为映射

如何在clojure中将列表转换为映射,clojure,Clojure,我有以下清单 ({:Col1 {:type varchar :nullable true}} {:Col2 {:type varchar :nullable true}} {:Col3 {:type varchar :nullable false}}) 并希望转换为以下内容 {:Col3 {:type varchar, :nullable false}, :Col1 {:type varchar, :nullable true}, Col2 {:type varchar, :nullable

我有以下清单

({:Col1 {:type varchar :nullable true}} {:Col2 {:type varchar :nullable true}} {:Col3 {:type varchar :nullable false}})
并希望转换为以下内容

{:Col3 {:type varchar, :nullable false}, :Col1 {:type varchar, :nullable true}, Col2 {:type varchar, :nullable true}}
我正在使用以下代码

(def a '({:Col1 {:type varchar :nullable true}} {:Col2 {:type varchar :nullable true}} {:Col3 {:type varchar :nullable false}}))

 (apply hash-map (flatten (map (comp flatten seq) a)))
但是有更好的解决方案吗?

另一种方法是使用:

另一种方法是使用:

另一种方法是使用:

另一种方法是使用:


除了Symfrog的答案外,此选项同样简短,但可能更容易理解:

(apply merge a)
其中,
a
定义为一系列地图,如您的问题所示

你也可以使用

(reduce conj a)

这大致就是Clojure源代码中的情况。

除了Symfrog的答案外,此选项同样简短,但可能更容易理解:

(apply merge a)
其中,
a
定义为一系列地图,如您的问题所示

你也可以使用

(reduce conj a)

这大致就是Clojure源代码中的情况。

除了Symfrog的答案外,此选项同样简短,但可能更容易理解:

(apply merge a)
其中,
a
定义为一系列地图,如您的问题所示

你也可以使用

(reduce conj a)

这大致就是Clojure源代码中的情况。

除了Symfrog的答案外,此选项同样简短,但可能更容易理解:

(apply merge a)
其中,
a
定义为一系列地图,如您的问题所示

你也可以使用

(reduce conj a)
这大概就是Clojure来源中的情况