明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 996|回复: 4

[提问] 表内归类和分拆

[复制链接]
发表于 2023-4-24 04:19:23 来自手机 | 显示全部楼层 |阅读模式
有这样一個表
((B 3)  (A 1)  (B 4) (C 9) (A 6) (B 1)(D 6))
把它拆成下面两个表
其一( ((B 3)(B 4) (B 1)) ((A 1)(A 6)) )
其二((C 9) (D 6))
这种循环结构,想了几天,也个头绪。哪位高人可以帮弄一个,或给点思路。
发表于 2023-4-24 07:13:20 | 显示全部楼层
可以先提取'(A B C D ).然后对这表中的原图逐一判别,将头部详图的表合成一个。
发表于 2023-4-24 07:59:20 | 显示全部楼层
本帖最后由 guosheyang 于 2023-4-24 08:02 编辑

先用vl-symbol-name将符号转字符串   再用vl-remove-if-not  vl-remove-if 函数将不需要的剔除掉  
发表于 2023-4-24 08:42:33 | 显示全部楼层
本帖最后由 vitalgg 于 2023-4-24 09:03 编辑

  1. (setq lst '((B 3)  (A 1)  (B 4) (C 9) (A 6) (B 1)(D 6)))
  2. (setq lst (vl-sort lst '(lambda (x y)(< (vl-symbol-name (car x))(vl-symbol-name(car y))))))
  3. (setq res (list:group-by lst '(lambda (x y)(= (car x)(car y)))))

  4. ;; 第一个要求
  5. (setq res1 (vl-remove-if-not '(lambda (x)(> (length x) 1)) res))
  6. ;; 第二个要求
  7. (setq res2 (mapcar 'car (vl-remove-if-not '(lambda (x)(= (length x) 1)) res)))



;; 将 res 中长度大于1 的为你的第一个要求,等于1的为你的第二个要求






https://gitee.com/atlisp/atlisp-lib
@lisp 开源函数库,大量函数期待您的开发与维护。众多开发者协同开发与维护,你不再是一个人在战斗。

在CAD中执行
(@:updatelib)
实时更新函数库。

本贴函数 list:group-by 源码注意目录结构 函数组list  函数名 group-by)
https://gitee.com/atlisp/atlisp- ... c/list/group-by.lsp

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2023-4-24 08:49:00 | 显示全部楼层
这个A  是变量名  还是变量的值。如果是变量值就很简单,如果是变量名建议换成字符串储存变量名,不然会经常会赋值,对于系统来说A是默认求值

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-16 15:57 , Processed in 0.174941 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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