在Common Lisp中,有没有办法从alist
中检索与给定密钥匹配的所有条目?
答案 0 :(得分:11)
(remove 'a '((a 1) (a 2) (b 1))
:test-not #'eql
:key #'first)
->
((A 1) (A 2))
答案 1 :(得分:3)
如果你有一个关联列表a
:
(defvar a '((a 1) (a 2) (b 1)))
您可以通过调用remove-if-not来保留所有拥有a
汽车的货币对:
(remove-if-not (lambda (x) (eq (car x) 'a)) a)
这导致:
((A 1) (A 2))
即使被视为关联列表,也只会返回其中的第一个。