jpg102329 发表于 2017-8-16 17:12:33

按索引删除列表的项

本帖最后由 jpg102329 于 2017-8-21 08:10 编辑


;22:35 2017/7/20
;【管理员】大海<tryhi@sina.cn> 22:48:12
(defun remove-dh (lst n / a i k lst1)
(setq i -1 k t)
(while(and(setq a(car lst))k)
(setq
i(1+ i)
lst(cdr lst)
)
(if (= i n)(setq k nil)(setq lst1(cons a lst1)))
)
(append (reverse lst1)lst)
)



;22:35 2017/7/20
【观音】落魄山人<vicwjb@qq.com> 22:33:30
(defun remove (lst i / len m)
(setq len (length lst))
(cond
    ((> i (fix (/ len 2)))
   (reverse (vl-remove-if '(lambda (x) (= i (setq len (1- len)))) (reverse lst)))
    )
    (t
   (setq m -1)
   (vl-remove-if '(lambda (x) (= i (setq m (1+ m)))) lst)
    )
)
)试试这个
;22:33 2017/7/20
【观音】落魄山人<vicwjb@qq.com> 22:32:18
(defun BF-List-RemoveIndex (lst index / i)
(setq i -1)
(vl-remove-if '(lambda (x) (= (setq i (1+ i)) index)) lst)
)
;22:30 2017/7/20
【观音】落魄山人<vicwjb@qq.com> 22:08:45
;;;名称:BF-List-RemoveIndex
;;;说明:按索引删除列表的项,leemac
;;;参数:lst:列表
;;;参数:index:索引,从0开始
;;;返回:删除索引项之后的列表
;;;示例:(BF-List-RemoveIndex '(0 1 2 3) 1)
(defun BF-List-RemoveIndex (lst index / i)
(setq i -1)
(vl-remove-if '(lambda (x) (= (setq i (1+ i)) index)) lst)
);我是这么写的

<以上内容出自《大海语录》不代表本人观点>
欢迎加入通信管线设计技术交流群655280537,通信管线规划设计技术、资源交流群,CAD底图交换、付费教程免费获取、交流经验、互相学习,共同进步!



页: [1]
查看完整版本: 按索引删除列表的项