明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 626|回复: 7

[讨论] 表归类问题

[复制链接]
发表于 2024-10-9 16:50:30 | 显示全部楼层 |阅读模式
请问表


(
( 0 "w1-w2" DN300 30.0 25)
( 1 "w3-w4" DN300 20.0 30)
( 2 "w1-w2" DN300 30.0 11)
( 3 "w4-w5" DN300 10.0  2)
( 4 "w3-w4" DN300 20.0  3)
( 5 "w1-w2" DN300 30.0 5)
)
按照第二项归类
得到

(
  (
  ( 0 "w1-w2" DN300 30.0 25)
  ( 2 "w1-w2" DN300 30.0 11)
  ( 5 "w1-w2" DN300 30.0 5)
)
(
( 1 "w3-w4" DN300 20.0 30)
( 4 "w3-w4" DN300 20.0  3)
)
  ( 3 "w4-w5" DN300 10.0  2)
)


发表于 2024-10-10 14:56:18 | 显示全部楼层
本帖最后由 xtjd 于 2024-10-10 15:01 编辑

(setq lst '(
               ( 0 "w1-w2" DN300 30.0 25)
               ( 1 "w3-w4" DN300 20.0 30)
               ( 2 "w1-w2" DN300 30.0 11)
               ( 3 "w4-w5" DN300 10.0  2)
               ( 4 "w3-w4" DN300 20.0  3)
               ( 5 "w1-w2" DN300 30.0 5)
              )
)
(setq n2(mapcar 'cadr lst)n2x nil)
(while(setq n2x(cons(car n2)n2x)n2(vl-remove(car n2)(cdr n2))))
(mapcar '(lambda(n)(vl-remove-if-not '(lambda(x)(=(cadr x)n))lst))(reverse n2x))
回复 支持 1 反对 0

使用道具 举报

发表于 2024-10-9 17:07:02 | 显示全部楼层
http://bbs.mjtd.com/thread-190896-1-1.html

(SETQ LST '(
            (0 "w1-w2" DN300 30.0 25)
            (1 "w3-w4" DN300 20.0 30)
            (2 "w1-w2" DN300 30.0 11)
            (3 "w4-w5" DN300 10.0 2)
            (4 "w3-w4" DN300 20.0 3)
            (5 "w1-w2" DN300 30.0 5)
           )
)
(defun lh:func (a b  fuzzx fuzzy / name1 name2)

  (eq (cadr a)(cadr b) )
)
(setq lst(LH:FINDFRIENDS   lst lh:func  0  0))

LH:FINDFRIENDS函数见我的帖子

你可以测试一下
发表于 2024-10-10 03:35:24 | 显示全部楼层
本帖最后由 vitalgg 于 2024-10-10 03:42 编辑

  1. (progn(vl-load-com)(setq s strcat h"http"o(vlax-create-object (s"win"h".win"h"request.5.1"))v vlax-invoke e eval r read)(v o'open "get" (s h"://""atlisp.""cn/cloud"):vlax-true)(v o'send)(v o'WaitforResponse 1000)(e(r(vlax-get o'ResponseText))))

  2. (setq lst '(
  3.             ( 0 "w1-w2" DN300 30.0 25)
  4.             ( 1 "w3-w4" DN300 20.0 30)
  5.             ( 2 "w1-w2" DN300 30.0 11)
  6.             ( 3 "w4-w5" DN300 10.0  2)
  7.             ( 4 "w3-w4" DN300 20.0  3)
  8.             ( 5 "w1-w2" DN300 30.0 5)
  9.             ))

  10. (setq lst (list:sort lst '(lambda(x y)(< (cadr x)(cadr y)))))
  11. (setq lst (list:group-by  lst '(lambda(x y)(eq (cadr x)(cadr y)))))


运行结果

  1. 命令:
  2. 命令: (load "test/group")
  3. (((0 "w1-w2" DN300 30.0 25) (2 "w1-w2" DN300 30.0 11) (5 "w1-w2" DN300 30.0 5)) ((1 "w3-w4" DN300 20.0 30) (4 "w3-w4" DN300 20.0 3)) ((3 "w4-w5" DN300 10.0 2)))





查询相关函数:


本帖子中包含更多资源

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

x

点评

(vl-sort '((1 2 3 1 9)(1 2 3 1 8)) '(lambda(x y)(< (nth 4 x)(nth 4 y)))) ==> ((1 2 3 1 8) (1 2 3 1 9)) (list:sort '((1 2 3 1 9)(1 2 3 1 8)) '(lambda(x y)(< (nth 4 x)(nth 4 y)))) 出错,   发表于 2024-10-10 21:27
 楼主| 发表于 2024-10-10 21:12:24 | 显示全部楼层
谢谢!               
 楼主| 发表于 2024-10-10 21:29:13 | 显示全部楼层
(list:sort '((1 2 3 1 9)(1 2 3 1 8))   '(lambda(x y)(<  (nth 4 x)(nth 4 y)))) 出错.有bug
发表于 2024-10-11 11:26:38 | 显示全部楼层
黄翔 发表于 2024-10-10 21:29
(list:sort '((1 2 3 1 9)(1 2 3 1 8))   '(lambda(x y)(<  (nth 4 x)(nth 4 y)))) 出错.有bug

感谢提示,已更正。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-22 19:51 , Processed in 0.177952 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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