我有一个元素列表。每个元素的结构如下:
('symbol "string" int-score)
示例列表:
(list (list 'object1 "wabadu" 0.5)
(list 'object2 "xezulu" 0.6)
(list 'object1 "yebasi" 0.5)
(list 'object1 "tesora" 0.2))
我想检索特定符号的最大值。当我使用符号搜索时object2
,我应该返回:
('object2 "xezulu" 0.6)
如果我用 搜索object1
,我应该回来:
(('object1 "wabadu" 0.5) ('object1 "yebasi" 0.5))
我想收集特定对象的所有最高元素。我能做的是:假设上面的列表是下面使用的列表并且我正在搜索object1
. 我可以检索特定对象的所有元素:
(loop for element in list
when (equal 'object1 (first element))
collect element)
我还可以检索列表的最高元素:
(loop for element in list
when (equal 'object1 (first element))
maximize (third element))
但是,这只会返回一个元素。我想要的是所有最大的元素。我尝试了一些与collect
and的组合maximize
,但我对语法的了解很少。有没有办法在“简单”函数中收集所有最高元素?