明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1333|回复: 6

[求助]如何用一简单的程序实现删除表中多余的相同项

[复制链接]
发表于 2008-2-29 12:44 | 显示全部楼层 |阅读模式
如何用一简单的程序实现删除表中多余的相同项,如(1  2   2  3  2)->(1  2  3)
发表于 2008-2-29 13:25 | 显示全部楼层
(defun lt:list-remove-r (lst / a lst2)
  (while (setq a (car lst) lst2 (cons a lst2) lst (vl-remove a lst)))
  (reverse lst2)
)
发表于 2008-2-29 13:35 | 显示全部楼层
(vl-sort '(1 2 2 3 2) '<)
 楼主| 发表于 2008-3-1 12:03 | 显示全部楼层
本帖最后由 作者 于 2008-3-1 18:40:38 编辑

谢谢,可是有小数点就不行.

(vl-sort '(1  2.1  2.1  3 ) '<)还是不行

 楼主| 发表于 2008-3-2 19:55 | 显示全部楼层
3 楼不错,可是只适用于整数,还有简单的吗?
发表于 2008-3-2 22:33 | 显示全部楼层

 (setq lst2 '())
(mapcar '(lambda(x) (if (not (member x lst2))(setq lst2 (append lst2 (list x))))) lst1)

其实和2楼的原理一样的。

 楼主| 发表于 2008-3-3 13:11 | 显示全部楼层
谢谢两位
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-17 10:19 , Processed in 0.186115 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表