Lee Mac 发表于 2022-7-6 11:23:13

派对有点晚,但我的2美分:
 

(defun LM:ListDupes ( lst )
;; © Lee Mac 2010
(if lst
   (if (vl-position (car lst) (cdr lst))
   (cons
       (cons (car lst)
         (- (length lst) (length (vl-remove (car lst) lst)))
       )
       (LM:ListDupes (vl-remove (car lst) lst))
   )
   (LM:ListDupes (cdr lst))
   )
)
)

alanjt 发表于 2022-7-6 11:25:29

(vl-remove-if-not
(function (lambda (x) (vl-position (car x) '(1 3 5))))
(_ListDuplicateCounter my_lst)
)
 
 

Lee Mac 发表于 2022-7-6 11:30:47

 

(defun LM:ListDupes ( lst )
;; © Lee Mac 2010
(if lst
   (if (vl-position (car lst) (cdr lst))
   (cons
       (cons (car lst)
         (- (length lst) (length (vl-remove (car lst) lst)))
       )
       (LM:ListDupes (vl-remove (car lst) lst))
   )
   (LM:ListDupes (cdr lst))
   )
)
)

(defun LM:GetOddDupes ( lst )
;; © Lee Mac 2010
(vl-remove-if-not
   '(lambda ( x ) (= 1 (boole 1 1 (cdr x)))) (LM:ListDupes lst)
)
)

sadhu 发表于 2022-7-6 11:31:50

艾伦,
我做了这个修改,并完成了我的案例。
 
非常感谢。

sadhu 发表于 2022-7-6 11:37:30

李,
我像这样尝试了你的代码-结果为零-我遗漏了什么吗?
15

Lee Mac 发表于 2022-7-6 11:39:22

您的列表中只有一个元素重复了两次,因此根据您的请求将其省略。

sadhu 发表于 2022-7-6 11:42:19

我的列表中有六个元素,其中“4”重复两次(偶数),因此应将其排除在外,而1、2、3和5只出现一次(奇数),因此应将其包括在内:
我也尝试过这种方法,但仍然得到零:
对不起,我不清楚。

Lee Mac 发表于 2022-7-6 11:44:21

啊-我以为你只计算重复项-我的代码忽略任何没有重复多次的内容。

Lee Mac 发表于 2022-7-6 11:48:57

这使我的代码更加简单:
 
18
 
19

sadhu 发表于 2022-7-6 11:52:21

是的,现在我明白了。它起作用了。
 
非常感谢李。
页: 1 [2]
查看完整版本: LISP测试元素是否为