明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2039|回复: 9

[讨论] 帮忙把表中元素按指定的顺序排序

[复制链接]
发表于 2013-3-23 23:53:31 | 显示全部楼层 |阅读模式
本帖最后由 psufngah 于 2013-3-24 10:03 编辑

("DB" "DD" "BP" "PP" "HH")需要按如下表中顺序来排( "HP" "BB" "UE" "HH" "BP" "PP" "SB" "SP" "DB" "CB" "DD" "DE" "CC" "DH")请高手帮忙写点思路。谢谢。

上面第一个表是程序读取出来的,有时不止五个,有时又少于五个,最多的时候和第二个表差不多,但第一个表的顺序不是我想要的,就是不管出几个元素,都需要按照第二个表的素顺序来排列。
发表于 2013-3-24 09:30:39 | 显示全部楼层
没头没脑的,上面的表是怎样的次序?下面的表又是怎样次序?没有个关系怎么好排?
如果就是你所说的这样的表,直接构建一个不就行了。
发表于 2013-3-24 09:59:29 | 显示全部楼层
樓主的提問很清楚啊
发表于 2013-3-24 10:47:21 | 显示全部楼层
(setq Lstok '("HP" "BB" "UE" "HH" "BP" "PP" "SB" "SP" "DB" "CB" "DD" "DE" "CC" "DH"))
(setq Lst '("DB" "DD" "BP" "PP" "HH"))

(vl-remove-if-not
  (function
   (lambda (x) (member x Lst))
  )
  LstOk
)
发表于 2013-3-24 10:56:45 | 显示全部楼层
  1. (setq lst '( "HP" "BB" "UE" "HH" "BP" "PP" "SB" "SP" "DB" "CB" "DD" "DE" "CC" "DH")
  2.       l '("DB" "DD" "BP" "PP" "HH")
  3.       )
  4. ;;排序
  5. (setq l (vl-sort l '(lambda (a b) (< (VL-POSITION a lst) (VL-POSITION b lst)))))
 楼主| 发表于 2013-3-24 13:50:57 | 显示全部楼层
以上非常感谢!好用
发表于 2013-3-24 16:37:15 | 显示全部楼层
还是版主厉害。
发表于 2013-10-23 23:20:28 | 显示全部楼层
我对楼主提这个问题表示好奇。
发表于 2013-10-25 22:26:46 | 显示全部楼层
本帖最后由 llsheng_73 于 2013-10-25 22:28 编辑
Gu_xl 发表于 2013-3-24 10:56

得多向G版学习
看来没事多逛逛,有学到很多东东还可以混积分
发表于 2013-10-28 00:10:17 | 显示全部楼层
不错,很好的函数。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-26 05:48 , Processed in 0.172815 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表