[英]Clojure: filter list of maps by 2nd 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"})
和第二個列表,例如("c" "i")
。
我需要按第二個列表項過濾地圖列表,以獲得如下結果
({:a "a" :b "b" :c "c"} {:a "g" :b "h" :c "i"})
但不知道如何。
特定
(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
(或被引用)。 :c
的值進行過濾,該值不必是打印地圖中的第二個條目。 您需要掌握Clojure的兩個或三個方面:
filter
一樣工作。 comp
是做什么的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.