aws 发表于 2023-10-4 21:18:42

如何统计表里的重复数据?

大佬们,如何统计表里的重复数据?

假设有这么一个表(500 500 200 300 400 600 600 400 200)
我想把它变成((500 2)(200 2)(300 1)(400 2)(600 2))
就是,统计里面有多少重复的数值,然后再形成一个表。
有没有办法实现?

aws 发表于 2023-10-4 21:34:06

http://bbs.mjtd.com/forum.php?mod=viewthread&tid=108581&highlight=%D6%D8%B8%B4%2B%B1%ED

已解决,感谢前辈们

vitalgg 发表于 2023-10-5 09:55:34


xyp1964 发表于 2023-10-5 20:23:15

;; (abc'(500 500 200 300 400 600 600 400 200))
(defun abc (lst / a n1 n2 tmp)
(while (setq a (car lst))
    (setq n1(length lst)
          lst (vl-remove-if '(lambda (x) (equal x a)) lst)
          n2(length lst)
          tmp (cons (list a (- n1 n2)) tmp)
    )
)
(reverse tmp)
)

aws 发表于 2023-10-5 20:59:59

xyp1964 发表于 2023-10-5 20:23


院长,为什么最后要(reverse tmp)倒置一下呢?

aws 发表于 2023-10-5 21:17:47

xyp1964 发表于 2023-10-5 20:23


试了一下,明白了
页: [1]
查看完整版本: 如何统计表里的重复数据?