我正在学习如何在 Clojure 中惯用地破坏数据结构,目前有以下示例数据
数据:
(def data [
{:category "A", :vertical_name "One", :vertical_id 11}
{:category "B", :vertical_name "Two", :vertical_id 12}
{:category "A", :vertical_name "Three", :vertical_id 13}
{:category "C", :vertical_name "Four", :vertical_id 14}
])
我想将两个/多个地图合并到一个地图中,这些地图属于上述数据中的同一类别,
预期输出:
{{:category "A", :vertical [{:vertical_id 11, :vertical_name "One"}{:vertical_id 13, :vertical_name "Three"}]}
{:category "B", :vertical {:vertical_id 12, :vertical_name "Two"}}
{:category "C", :vertical {:vertical_id 14, :vertical_name "Four"}}}
我试过 group-by 这给了我
{"A" [{:category "A", :vertical_name "One", :vertical_id 11} {:category "A", :vertical_name "Three", :vertical_id 13}],
"B" [{:category "B", :vertical_name "Two", :vertical_id 12}],
"C" [{:category "C", :vertical_name "Four", :vertical_id 14}]}
但这有很多冗余信息,例如:category "A"
存在于所有地图中,并且输出的格式不是我想要的方式。
在此先感谢您的帮助。