有特殊要求的字符串排序
本帖最后由 hrbustmqc 于 2015-3-5 08:37 编辑(("byzm1" "AL1" "单相" "4")
("byzm2" "AL1" "单相" "4")
("cz1" "AL1" "单相" "2")
("cz2" "AL1" "单相" "2")
("fj1" "AL1" "三相" "2")
("fj2" "AL1" "三相" "5")
("fj3" "AL1" "三相" "6")
("fj4" "AL1" "三相" "8")
("kt1" "AL1" "单相" "2")
("qqqqqq1" "AL1" "单相" "2")
("snj1" "AL1" "单相" "2")
("xxxxx1" "AL1" "单相" "2")
("zm1" "AL1" "单相" "1.44")
("zm2" "AL1" "单相" "2")
("zm3" "AL1" "三相" "5")
("普通三相1" "AL1" "三相" "6")
("普通三相2" "AL1" "三相" "12")
("wl2" "AL2" "三相" "2")
("wp2" "AL2" "三相" "4")
("zm3" "AL2" "三相" "2"))
以前提问过,第二项按照AL1 AL2 。。排序, 第三项按照单相、三相排序。承蒙各位指点,已经实现。
现在想让第一项按照指定的字母排序,二三项按AL1 AL2单相、三相要求排序。
出线的 zm1 zm2byzm2 byzm2cz1 cz2kt1 kt2排在最前面, 第一项出现的其他字母不作要求。
http://bbs.mjtd.com/thread-113085-1-1.html 9楼
(mapcar '(lambda (f) (setq L (vl-sort L '(lambda (x y) (< (f X) (f Y)))))) (list cadddr caddr cadr car))改一下list后面的几个东西顺序就可以了 自贡黄明儒 发表于 2015-3-5 12:01 static/image/common/back.gif
http://bbs.mjtd.com/thread-113085-1-1.html 9楼
(mapcar '(lambda (f) (setq L (vl-sort L '(lambda (x...
抱歉,这个比较式比较的是什么实在没看懂(< (f X) (f Y)) ,研究了半天,看来我智商拙计!我的意思是其他的排序按照以前的要求,第一项排序在第一位置的是zm1 zm2 ,排在第二位的是byzm2 byzm2 排在第三位的是 cz1 cz2。希望不吝惜指教。我跑跑程序,看看每步结果就能想的差不多了。 自贡黄明儒 发表于 2015-3-5 12:01 static/image/common/back.gif
http://bbs.mjtd.com/thread-113085-1-1.html 9楼
(mapcar '(lambda (f) (setq L (vl-sort L '(lambda (x...
牛叉 真牛叉!
(list cadddr caddr cadr car)=(list 按倒数第一排 按倒数第二排 按第二排 按第一排序)
((("wl1" "AL1" "单相" "1.44")
("wl1" "AL3" "单相" "2")
("wl1" "AL2" "单相" "2")
("wl2" "AL2" "单相" "2")
("wl3" "AL3" "三相" "2")
("wl2" "AL1" "单相" "2")
("wl3" "AL1" "三相" "5")
)
(("wl1" "AL1" "单相" "1.44")
("wl1" "AL3" "单相" "2")
("wl1" "AL2" "单相" "2")
("wl2" "AL2" "单相" "2")
("wl2" "AL1" "单相" "2")
("wl3" "AL3" "三相" "2")
("wl3" "AL1" "三相" "5")
)
(("wl1" "AL1" "单相" "1.44")
("wl2" "AL1" "单相" "2")
("wl3" "AL1" "三相" "5")
("wl1" "AL2" "单相" "2")
("wl2" "AL2" "单相" "2")
("wl1" "AL3" "单相" "2")
("wl3" "AL3" "三相" "2")
)
(("wl1" "AL1" "单相" "1.44")
("wl1" "AL2" "单相" "2")
("wl1" "AL3" "单相" "2")
("wl2" "AL1" "单相" "2")
("wl2" "AL2" "单相" "2")
("wl3" "AL1" "三相" "5")
("wl3" "AL3" "三相" "2")
)
)
为什么会有这样的效果? 我明白了 解析一下(mapcar '(lambda (f)
(setq L (vl-sort L '(lambda (x y) (< (f X) (f Y)))))
)
(list car)
)
相当于:(setq l (vl-sort L '(lambda (x y) (< (car X) (car Y)))))刚过完年就看到这么棒的想法,。
页:
[1]