Lisp中的关联列表-从

Lisp中的关联列表-从,lisp,common-lisp,Lisp,Common Lisp,在Common Lisp中,是否有方法从alist中检索与给定键匹配的所有条目?如果您有一个关联列表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)) 即使将其视为assoc列表,也只会返回其中的第一个列表 (remove 'a '((a 1) (a 2) (b

在Common Lisp中,是否有方法从
alist
中检索与给定键匹配的所有条目?

如果您有一个关联列表
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))
即使将其视为assoc列表,也只会返回其中的第一个列表

(remove 'a '((a 1) (a 2) (b 1))
        :test-not #'eql
        :key #'first)

->

((A 1) (A 2))