相关疑难解决方法(0)

交换地图中的键和值

是否有一个函数来交换给定地图的键和值.因此,给定一个地图,我希望键成为值,并为键值.

(swap {:a 2 b 4}) => {2 :a 4 :b}
Run Code Online (Sandbox Code Playgroud)

一种方法是

(zipmap (vals my-map) (keys my-map))
Run Code Online (Sandbox Code Playgroud)

但是想知道clojure是否为此提供了实用程序fn?

clojure

15
推荐指数
3
解决办法
4266
查看次数

通过Clojure中的值列表中的第一个元素获取密钥

这类似于Clojure get map key by value

但是,有一点不同.如果像hm那样你会怎么做同样的事情

{1 ["bar" "choco"]}
Run Code Online (Sandbox Code Playgroud)

想法是获得1(键)第一个元素,如果值列表是"bar"?如果其他问题得到解答,请随时关闭/合并此问题.

我试过这样的东西,但它不起作用.

(def hm {:foo ["bar", "choco"]})

(keep #(when (= ((nth val 0) %) "bar")
         (key %))
      hm)
Run Code Online (Sandbox Code Playgroud)

clojure

0
推荐指数
2
解决办法
206
查看次数

标签 统计

clojure ×2