在线等:如何删除列表中的相同元素
<P>在线等:如何删除列表中的相同元素</P><P>如:已知两线相交,相画一个三角形,如何求得不相交的两点</P> ;删除列表中的相同元素
(defun erase-equal-lst (lst)
(setq lst-new '())
(while (setq e1 (car lst))
(setq lst-new (cons e1 lst-new)
n (str-len lst e1)
)
(repeat n
(setq lst (vl-remove e1 lst)
)
)
)
(setq lst-new (reverse lst-new))
lst-new
)
;;求表中某个元素的个数
(defun str-len (lst item)
(- (length lst) (length (vl-remove item lst)))
)
如后面的问题看不懂!呵呵……
版主:可不可以将相同元素全部删除 <P>删除表元素出现次数大于1的就可以了。<BR>查找表元素的出现次数的程序,论坛里应该是有的。</P> ;;;删除列表中的相同全部元素
(defun erase-equal-lst-all (lst)
(setq lst-new '())
(while (setq e1 (car lst))
(setq n (str-len lst e1))
(if (= n 1)
(setq lst-new (cons e1 lst-new))
)
(repeat n
(setq lst (vl-remove e1 lst)
)
)
)
(setq lst-new (reverse lst-new))
lst-new
)
;;求表中某个元素的个数
(defun str-len (lst item)
(- (length lst) (length (vl-remove item lst)))
)测试:
命令: (erase-equal-lst-all '(2 3 4 5 2 3 4 6 7 8))
(5 6 7 8)
少了 STR-LEN 函数
页:
[1]