如何在嵌套哈希图中合并?

我有一个嵌套的哈希图,其结构类似于以下内容:

(def pathmap {:order {:genus {:species {:cat2 "data", :cat1 "data"}}}})

我需要的是一个类似于assoc-in的函数,该函数使我可以将新的键值对添加到最里面的嵌套映射中,而不是简单地替换已经存在的键值对。例如:

(my-assoc-merge pathmap [:order :genus :species] {:cat3 "data"})
;=> {:order {:genus {:species {:cat3 "data" :cat2 "data", :cat1 "data"}}}}

我以为我可以通过稍微更改assoc-in函数以使用merge-with和union来足够容易地做到这一点:

(defn my-assoc-merge
  [m [k & ks] v]
  (if ks
    (assoc m k (my-assoc-merge (get m k) ks v))
    (assoc m k (merge-with clojure.set/union (get m k '{}) v))))

不幸的是,这给了我错误“ CompilerException java.lang.UnsupportedOperationException:此类型不支持计数:关键字,编译:(core.clj:34:12)”。我要去哪里错了?

韦伯

实际上,assoc-in如果不存在,则已经创建了一个新密钥。用法如下:

(def pathmap {:order {:genus {:species {:cat2 "data", :cat1 "data"}}}})

(assoc-in pathmap [:order :genus :species :cat3] "data")
;=> {:order {:genus {:species {:cat2 "data", :cat3 "data", :cat1 "data"}}}}

如果您希望合并新地图,请update-inmerge

(update-in pathmap [:order :genus :species] merge {:cat3 "data"})
;=> {:order {:genus {:species {:cat2 "data", :cat3 "data", :cat1 "data"}}}}

您的问题my-assoc-mergeunion在集合上有效。更改merge-withmerge并删除union

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

哈希图中的<K,V>是什么,如何在自己的类中使用它?

来自分类Dev

遍历嵌套的哈希图

来自分类Dev

嵌套的哈希迭代:如何在(哈希内的(哈希数组)上)迭代合并

来自分类Dev

如何从哈希图中获取5个最高值?

来自分类Dev

如何在Clojure的哈希图中插入if

来自分类Dev

如何在嵌套哈希图中合并?

来自分类Dev

在嵌套哈希图中创建多个相同深度值的集合

来自分类Dev

如何在哈希图中求和与重复出现的键相关联的值

来自分类Dev

如何在哈希图中打印所有键?

来自分类Dev

如何使用其他哈希图的对象在哈希图中定义哈希图

来自分类Dev

如何使用Lambda获取哈希图中的值的键计数

来自分类Dev

如何对哈希图中的所有值求和?

来自分类Dev

如何从哈希图中删除许多元素?

来自分类Dev

如何获取哈希图中的arrayList的大小

来自分类Dev

哈希图中的<K,V>是什么,如何在自己的类中使用它?

来自分类Dev

Java初学者:如何在哈希图中对键进行排序?

来自分类Dev

合并多个哈希图

来自分类Dev

如何在Clojure的哈希图中插入if

来自分类Dev

在嵌套哈希图中创建多个相同深度值的集合

来自分类Dev

如何打印哈希图中的键列表?

来自分类Dev

从哈希图中删除

来自分类Dev

遍历嵌套的哈希图

来自分类Dev

如何在文件的哈希图中查找值的总和

来自分类Dev

如何在刷新期间锁定哈希图?

来自分类Dev

如何对嵌套的哈希图进行排序?

来自分类Dev

如何在哈希图中获取包含最新LocalDate的对象

来自分类Dev

如何在 kotlin 中打乱哈希图

来自分类Dev

如何在哈希图中获取字符串和哈希图的混合值

来自分类Dev

如何在排序的哈希图中获取两个给定键之间的所有键值?

Related 相关文章

热门标签

归档