我有两个向量[:v1:v2:v3] [:V1:V2:V3],我希望以格式创建一个向量:
[ [:key "v1" :value "V1"]
[:key "v2" :value "V2"]
[:key "v3" :value "V3"]
]
答案 0 :(得分:3)
(mapv (fn [k v] [:key (name k) :value (name v)])
[:v1 :v2 :v3] [:V1 :V2 :V3])
答案 1 :(得分:1)
为了多样性:
(into [] (zipmap (map name [:v1 :v2 :v3]) (map name [:V1 :V2 :V3])))
答案 2 :(得分:1)
如果您的标题显示与您的问题文字相矛盾,那么您实际上想要地图{"v3" "V3", "v2" "V2", "v1" "V1"}
,然后
(zipmap [:v1 :v2 :v3] [:V1 :V2 :V3])
......会给你
{:v3 :V3, :v2 :V2, :v1 :V1}
您必须先将每个项目转换为其名称:
(->> [[:v1 :v2 :v3] [:V1 :V2 :V3]]
(map (partial map name))
(apply zipmap))
;{"v3" "V3", "v2" "V2", "v1" "V1"}