有一张类似的地图列表
({:a "a" :b "b" :c "c"}
{:a "d" :b "e" :c "f"}
{:a "g" :b "h" :c "i"}
{:a "j" :b "k" :c "l"})
和第二个列表,例如("c" "i")
。
我需要按第二个列表项过滤地图列表,以获得类似
的结果 ({:a "a" :b "b" :c "c"} {:a "g" :b "h" :c "i"})
但是不知道怎么做。
答案 0 :(得分:3)
给予
gcr.io/cloudsql-docker/gce-proxy:1.11
然后
(def data
(list
{:a "a" :b "b" :c "c"}
{:a "d" :b "e" :c "f"}
{:a "g" :b "h" :c "i"}
{:a "j" :b "k" :c "l"}))
=> (filter (comp (set (list "c" "i")) :c) data)
({:a "a", :b "b", :c "c"} {:a "g", :b "h", :c "i"})
作为运算符(或被引用)。list
的值进行过滤,该键不必是打印地图中的第二个条目。您需要掌握Clojure的两个或三个方面:
:c
这样的序列功能如何工作。filter
的作用。