我有个重复坐标的点集合 怎么去除重复项
'((616787.0 4.90479e+006) (616897.0 4.9048e+006) (616902.0 4.90471e+006) (616795.0 4.90471e+006) (616787.0 4.90479e+006) (616897.0 4.9048e+006))这里有个6个坐标列表 其中有两个是重复的 怎么删除重复项 并且位置不变本帖最后由 dingtiedt 于 2018-10-10 17:17 编辑
删除表中重复数据,保留图元名,并统计表中相同数量
http://bbs.mjtd.com/forum.php?mo ... 370&fromuid=7309019
(出处: 明经CAD社区)
(vl-remove-if '(lambda (x) (equal (car x) (caar lst))) lst)
谢谢,以成功解决 ;Lee Mac
(defun LM:Unique ( l )
(if l (cons (car l) (LM:Unique (vl-remove (car l) (cdr l)))))
)
嗨!请留意!
(setq lst
'((616787.0 4.90479e+006) (616897.0 4.9048e+006) (616902.0 4.90471e+006) (616795.0 4.90471e+006) (616787.0 4.90479e+006) (616897.0 4.9048e+006))
)
;LM 递归返回
‘((616787.0 4.90479e+006) (616897.0 4.9048e+006) (616902.0 4.90471e+006) (616795.0 4.90471e+006))
787 897 902 795, X值没重复
; 楼上VL函数返回
((616897.0 4.9048e+006) (616902.0 4.90471e+006) (616795.0 4.90471e+006) (616897.0 4.9048e+006))
897 902 795 897, X值有重复
(equal
(LM:Unique lst)
(vl-remove-if '(lambda (x) (equal (car x) (caar lst))) lst)
1e-5
)
nil
;结果不一致 lisperado 发表于 2018-10-10 18:59
嗨!请留意!
(setq lst
'((616787.0 4.90479e+006) (616897.0 4.9048e+006) (616902.0 4.90471e+006 ...
谢谢你虽然看不懂 但是两个我都试了下还是你的我用着对
页:
[1]