明经CAD社区

 找回密码
 注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 173|回复: 2

[提问] 列表处理

[复制链接]
发表于 2020-11-20 20:55 | 显示全部楼层 |阅读模式
现列表1:(("2#-F3AL1" "70kW" "0.85" "0.95") ("2#-F2AL1" "70kW" "0.85" "0.95") ("2#-F1AL1" "70kW" "0.85" "0.95"))
现列表2:(("2#-F1AL1" "WL1" "普通照明 1" "0.416kW") ("2#-F2AL1" "WL1" "普通照明 1" "0.768kW") ("2#-F3AL1" "WL1" "普通照明 1" "0.768kW")
          ("2#-F1AL1" "WC1" "普通插座 1" "1.0kW") ("2#-F2AL1" "WC1" "普通插座 1" "1.0kW") ("2#-F3AL1" "WC1" "普通插座 1" "1.0kW")
          ("2#-F1AL1" "WG1" "公共照明 1" "0.416kW") ("2#-F2AL1" "WG1" "公共照明 1" "0.416kW") ("2#-F3AL1" "WG1" "公共照明 1" "0.416kW"))



目标列表:(("2#-F3AL1" "70kW" "0.85" "0.95" ("WL1" "普通照明 1" "0.768kW") ("WC1" "普通插座 1" "1.0kW") ("WG1" "公共照明 1" "0.416kW"))
          ("2#-F2AL1" "70kW" "0.85" "0.95" ("WL1" "普通照明 1" "0.768kW") ("WC1" "普通插座 1" "1.0kW") ("WG1" "公共照明 1" "0.416kW"))
          ("2#-F1AL1" "70kW" "0.85" "0.95" ("WL1" "普通照明 1" "0.416kW") ("WC1" "普通插座 1" "1.0kW") ("WG1" "公共照明 1" "0.416kW")))

各位大神帮忙看一下,如何这样处理列表,谢谢

发表于 2020-11-20 21:08 | 显示全部楼层
本帖最后由 wzg356 于 2020-11-20 21:20 编辑

(setq l3 nil)
(foreach n l1
        (setq a(car n) c nil)
        (foreach nn l2
                (if(setq b(member a nn))
                        (setq c(cons (cdr b) c))
                )
        )
        (setq l3(cons (append n c) l3))
)

l3为目标表
回复 支持 1 反对 0

使用道具 举报

发表于 2020-11-23 23:31 | 显示全部楼层
    (setq B1 '(("2#-F3AL1" "70kW" "0.85" "0.95")
               ("2#-F2AL1" "70kW" "0.85" "0.95")
               ("2#-F1AL1" "70kW" "0.85" "0.95")
              )
    )
    (setq B2 '(("2#-F1AL1" "WL1" "普通照明 1" "0.416kW")
               ("2#-F2AL1" "WL1" "普通照明 1" "0.768kW")
               ("2#-F3AL1" "WL1" "普通照明 1" "0.768kW")
               ("2#-F1AL1" "WC1" "普通插座 1" "1.0kW")
               ("2#-F2AL1" "WC1" "普通插座 1" "1.0kW")
               ("2#-F3AL1" "WC1" "普通插座 1" "1.0kW")
               ("2#-F1AL1" "WG1" "公共照明 1" "0.416kW")
               ("2#-F2AL1" "WG1" "公共照明 1" "0.416kW")
               ("2#-F3AL1" "WG1" "公共照明 1" "0.416kW")
              )
    )
    (setq Jgb (mapcar '(lambda(x)
                            (append x (mapcar 'cdr (vl-remove-if '(lambda(y)(/= (car x) (car y))) B2)))
                        )
                        B1
              )
    )

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2020-12-3 18:22 , Processed in 0.146032 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.3

© 2001-2013 Comsenz Inc.

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