明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1383|回复: 7

请教一下排序问题

[复制链接]
发表于 2013-1-28 23:03:52 | 显示全部楼层 |阅读模式
我看了很多排序相关资料,但排列出来的都是按数字或者字母排列,有可能将非常规的顺序排序吗?
如 '(A B C D)可以将它排成 '( C D B A)超出规定的至前或后的排序吗?

=>'( C1 C2 D1 D2 B1 A1 E)
发表于 2013-1-29 01:14:39 来自手机 | 显示全部楼层
顶起来,,我还是想知道
发表于 2013-1-29 16:35:54 | 显示全部楼层
例子再多一些,如果有E、F呢
发表于 2013-1-29 16:44:09 | 显示全部楼层
真心不明白你是要求按照什么来规则排序的...
发表于 2013-1-29 17:32:21 | 显示全部楼层
有规律的东西都可以编程实现,以节约人的时间和劳力。。。但是至少你要有排序的规则,除非你想随机排序
发表于 2013-1-30 11:03:22 | 显示全部楼层
先定义一个排序表,然后根据该表中位置排序就是了。
第一个是未定义项前置,第二个是未定义项后置
示例:(tt1 '("F" "H" "S" "T" "A" "B" "1" "2"))
  1. (defun tt1 (lst / defLst)
  2.   (setq  defLst '("N"   "M"   "L"   "K"   "J"   "I"   "H"   "G"   "F"
  3.      "E"   "D"   "C"   "B"   "A"   "Z"   "Y"   "X"   "W"
  4.      "U"   "V"   "O"   "P"   "Q"   "R"   "S"   "T"
  5.     )
  6.   ) ;_默认的排序方式,根据你的需要定义
  7.   (vl-sort lst
  8.      '(LAMBDA (a b)
  9.         (< (vl-position a defLst)(vl-position b defLst))
  10.       )
  11.   )
  12. )

  1. (defun tt1 (lst / defLst)
  2.   (setq defLst '("N"   "M"   "L"   "K"  "J"   "I"   "H"   "G"  "F"
  3.    "E"   "D"   "C"   "B"  "A"   "Z"   "Y"   "X"  "W"
  4.    "U"   "V"   "O"   "P"  "Q"   "R"   "S"   "T"
  5.   )
  6.   ) ;_默认的排序方式,根据你的需要定义
  7.   (vl-sort lst
  8.     '(LAMBDA (a b)
  9.        (> (length (member a defLst)) (length (member b defLst)))
  10.      )
  11.   )
  12. )

发表于 2013-1-30 14:06:47 来自手机 | 显示全部楼层
高手排序还能这样
 楼主| 发表于 2013-1-30 21:27:25 | 显示全部楼层
hb198075 发表于 2013-1-30 11:03
先定义一个排序表,然后根据该表中位置排序就是了。
第一个是未定义项前置,第二个是未定义项后置
示例: ...

实在太厉害!谢谢你的指教!可以自定义序列,就可以批量打印指定先后的图纸
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-1 05:58 , Processed in 0.146546 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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