clh521 发表于 2014-12-5 08:23:08

如何调整表的某个元素的位置顺序(不是排序的那种)?

比如(setqlst'(274951365)),得到结表(274951365),想让表(274951365)变为表(951 274 365)怎么弄?就是把第二个元素调到第一个元素的位置如何弄?谢谢!

Andyhon 发表于 2014-12-5 09:31:56

Command: (cons (cadr lst) (vl-remove (cadr lst) Lst))
(951 274 365)

clh521 发表于 2014-12-5 14:18:12

试了下,基本上是正确的,谢谢,但是当前面两个元素是一样的时候会出现表元素少了一个的情况,如
(setqlst'(274274365))

Command: (cons (cadr lst) (vl-remove (cadr lst) Lst))
(274 365)

Gu_xl 发表于 2014-12-5 18:06:07

clh521 发表于 2014-12-5 14:18
试了下,基本上是正确的,谢谢,但是当前面两个元素是一样的时候会出现表元素少了一个的情况,如
(setqls ...

(list (cadr lst) (car lst) (caddr lst))

clh521 发表于 2014-12-5 20:19:20

Gu_xl 发表于 2014-12-5 18:06 static/image/common/back.gif
(list (cadr lst) (car lst) (caddr lst))

谢谢,版主的代码简单又容易理解啊
页: [1]
查看完整版本: 如何调整表的某个元素的位置顺序(不是排序的那种)?