南国浪子 发表于 2014-10-18 11:28:34

如何删除坐标点相同的表元素,保留第一次出现的那个元素

本帖最后由 南国浪子 于 2014-10-18 11:30 编辑

(
((10 301.618 399.453 0.0) <图元名: 7b9c24d0>)
((10 301.618 399.453 0.0) <图元名: 7b9c24d8>)
((10 216.618 399.453 0.0) <图元名: 7b9c24e0>)
((10 216.618 399.453 0.0) <图元名: 7b9c24e8>)
((10 216.618 494.453 0.0) <图元名: 7b9c24f0>)
((10 216.618 494.453 0.0) <图元名: 7b9c24f8>)
((10 131.618 399.453 0.0) <图元名: 7b9c2500>)
((10 131.618 399.453 0.0) <图元名: 7b9c2508>)
((10 131.618 494.453 0.0) <图元名: 7b9c2510>)
((10 131.618 494.453 0.0) <图元名: 7b9c2518>)
((10 166.618 494.453 0.0) <图元名: 7b9c2520>)
((10 266.618 399.453 0.0) <图元名: 7b9c2530>)
)
如以上自定义表,现在需要将坐标点相同的表元素删除,只保留第一次出现的那个,如上表最终的结果为
(
((10 301.618 399.453 0.0) <图元名: 7b9c24d0>)
((10 216.618 399.453 0.0) <图元名: 7b9c24e0>)
((10 216.618 494.453 0.0) <图元名: 7b9c24f0>)
((10 131.618 399.453 0.0) <图元名: 7b9c2500>)
((10 131.618 494.453 0.0) <图元名: 7b9c2510>)
((10 166.618 494.453 0.0) <图元名: 7b9c2520>)
((10 266.618 399.453 0.0) <图元名: 7b9c2530>)
)
拜求各路高手不吝赐教!

xyp1964 发表于 2014-10-18 11:43:14

(defun aaa (lst / lst1 lst2 a b)
(setq        lst1 '()
        lst2 '()
)
(foreach a lst
    (setq b (car a))
    (if        (not (member b lst1))
      (setq lst2 (cons a lst2)
          lst1 (cons b lst2)
      )
    )
)
lst2
)

南国浪子 发表于 2014-10-18 11:54:34

xyp1964 发表于 2014-10-18 11:43 static/image/common/back.gif


多谢大侠赐教。。

llsheng_73 发表于 2014-10-18 14:14:07

本帖最后由 llsheng_73 于 2014-10-18 14:25 编辑

(defun delsame(lst n / a b);;lst嵌套表,n为子表第几项
(while(setq a(cons(car lst)a)b(nth n(car a))lst(vl-remove-if'(lambda(x)(equal(nth n x)b))(cdr lst))))
(reverse a))

(delsame '(((10 301.618 399.453 0.0) <图元名: 7b9c24d0>)
((10 301.618 399.453 0.0) <图元名: 7b9c24d8>)
((10 216.618 399.453 0.0) <图元名: 7b9c24e0>)
((10 216.618 399.453 0.0) <图元名: 7b9c24e8>)
((10 216.618 494.453 0.0) <图元名: 7b9c24f0>)
((10 216.618 494.453 0.0) <图元名: 7b9c24f8>)
((10 131.618 399.453 0.0) <图元名: 7b9c2500>)
((10 131.618 399.453 0.0) <图元名: 7b9c2508>)
((10 131.618 494.453 0.0) <图元名: 7b9c2510>)
((10 131.618 494.453 0.0) <图元名: 7b9c2518>)
((10 166.618 494.453 0.0) <图元名: 7b9c2520>)
((10 266.618 399.453 0.0) <图元名: 7b9c2530>)) 0)
页: [1]
查看完整版本: 如何删除坐标点相同的表元素,保留第一次出现的那个元素