明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 638|回复: 5

[提问] 请教表处理问题,合并子表

[复制链接]
发表于 2021-3-5 22:36 | 显示全部楼层 |阅读模式
10明经币
(setq list1 '(("水泥路" "15.80平方米" "" "" "" "厚度为1m") ("水泥路" "22.00平方米" "" "" "" "无厚度")("水泥路" "62.00平方米" "" "" "" "无厚度")
       ("水泥路" "100.00平方米" "" "" "" "无厚度")
  ("女儿墙" "6.85平方米" "8.05米" "0.85米" "0.12米" "有顶")("女儿墙" "22.00平方米" "8.05米" "0.85米" "0.12米" "有顶")))

;子表的0、3、4、5相同,则2相加返回新表list2
(setq list2 '(("水泥路" "15.80平方米" "" "" "" "厚度为1m") ("水泥路" "84.00平方米" "" "" "" "无厚度")
       ("女儿墙" "28.85平方米" "8.05米" "0.85米" "0.12米" "有顶")))


谢谢各位!

最佳答案

查看完整内容

第二个元素没有用算法提取单位,均按 平方米 考虑。
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2021-3-5 22:36 | 显示全部楼层
本帖最后由 vitalgg 于 2021-3-5 23:55 编辑

第二个元素没有用算法提取单位,均按 平方米 考虑。

  1. (setq list1 '(("水泥路" "15.80平方米" "" "" "" "厚度为1m")
  2.               ("水泥路" "22.00平方米" "" "" "" "无厚度")
  3.               ("水泥路" "62.00平方米" "" "" "" "无厚度")
  4.               ("水泥路" "100.00平方米" "" "" "" "无厚度")
  5.               ("女儿墙" "6.85平方米" "8.05米" "0.85米" "0.12米" "有顶")
  6.               ("女儿墙" "22.00平方米" "8.05米" "0.85米" "0.12米" "有顶")))

  7. (defun union-lst (list1 / list2)
  8.   (setq list2 '())
  9.   (foreach x% list1
  10.            (if (member (cons (car x%) (cdddr x%))  (mapcar '(lambda (x) (cons (car x) (cdddr x)))  list2))
  11.                (progn
  12.                  (foreach at% list2
  13.                           (if (equal (cons (car x%) (cdddr x%))
  14.                                      (cons (car at%) (cdddr at%)))
  15.                               (progn
  16.                                 (setq list2 (subst (append (list (car x%)
  17.                                                                  (strcat (rtos (+ (atof (nth 1 x%)) (atof (nth 1 at%))) 2 2) "平方米")
  18.                                                                  (nth 2 x%))
  19.                                                            (cdddr x%))
  20.                                                    at%
  21.                                                    list2)))
  22.                               )
  23.                           
  24.                           ))
  25.              (progn
  26.                (setq list2 (append list2 (list x%)))))
  27.            )
  28.   list2
  29.   )
  30. (print (union-lst list1))
  31. (princ)
回复

使用道具 举报

发表于 2021-3-5 22:58 | 显示全部楼层
要做两个工作:
1.搜索。
2.数据再整理。

用cons来组织数据,再用assoc可能会方便点。
回复

使用道具 举报

 楼主| 发表于 2021-3-6 00:25 | 显示全部楼层
vitalgg 发表于 2021-3-5 23:51
第二个元素没有用算法提取单位,均按 平方米 考虑。

太感谢你了!!!我慢慢再学习下
回复

使用道具 举报

 楼主| 发表于 2021-3-6 00:25 | 显示全部楼层
etoxp 发表于 2021-3-5 22:58
要做两个工作:
1.搜索。
2.数据再整理。

谢谢,我也要学着。。。。
回复

使用道具 举报

发表于 2021-3-9 08:46 | 显示全部楼层
谢谢,我也要学着。。。。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-10 04:27 , Processed in 0.141973 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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