表的排序问题
关于表排序的问题,可以采用如下方法:Command: (setq lst '((3 2)(1 3) (1 4) (1 2) (2 4)(2 5) (2 3)(8 9)(7 5)))
((3 2) (1 3) (1 4) (1 2) (2 4) (2 5) (2 3) (8 9) (7 5))
利用vl-sort将表按x从小到大排序:
Command: (setq rc (vl-sort lst '(lambda (s1 s2)(< (car s1)(car s2)))))
((1 3) (1 4) (1 2) (2 4) (2 5) (2 3) (3 2) (7 5) (8 9))
得到这样的结果后,能否将x相同的,再按照y值从小到大进行排序,x还是由小到大排序
最后实现这样的结果
((1 2) (1 3) (1 4) (2 3) (2 4) (2 5) (3 2) (7 5) (8 9))
请高手指点,谢谢!
借花献佛
命令: (HH:SSPTS:SORT lst "xy" 0.5)
((1 2) (1 3) (1 4) (2 3) (2 4) (2 5) (3 2) (7 5) (8 9)) (setq lst '((3 2)(1 3) (1 4) (1 2) (2 4)(2 5) (2 3)(8 9)(7 5)))
(setq rc (vl-sort lst
'(lambda (s1 s2) (cond((and (= (car s1) (car s2)) (< (cadr s1)(cadr s2))) t)
(t(< (car s1)(car s2)))))))
;===> ((1 2) (1 3) (1 4) (2 3) (2 4) (2 5) (3 2) (7 5) (8 9)) 两位的回复已收到,我去研究一下,感谢感谢! fan_zh 发表于 2014-11-27 09:38 static/image/common/back.gif
借花献佛
命令: (HH:SSPTS:SORT lst "xy" 0.5)
好东西,收下聊
页:
[1]