明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1622|回复: 5

[提问] 再次提问一个关于表操作的问题

[复制链接]
发表于 2014-6-30 09:55:10 | 显示全部楼层 |阅读模式
lst1 = ‘ (  ((1 1 z1)  (1 2 z1) )   ( ( 2 2 z2) )   ( ( 1 3 z3) ( 2 4 z3)  ( 2 2 z3) )  )
lst2 = ' ( Z1 Z2 Z3)
想用lst2 中的Z1 Z2 Z3 分别替换lst1中的 z1 z2 z3
请问有什么办法,想了很久都没想出来。。。
谢谢
发表于 2014-6-30 10:13:53 | 显示全部楼层
  1. (mapcar '(lambda (a b) (mapcar '(lambda (x) (list (car x) (cadr x) b)) a)) lst1 lst2)

点评

高深的有点男理解!  发表于 2014-6-30 16:20

评分

参与人数 1明经币 +1 收起 理由
edata + 1 很简洁

查看全部评分

发表于 2014-6-30 10:21:14 | 显示全部楼层
  1. (setq l1 '(((1 1 a1) (1 2 a1))
  2.            ((2 1 a2))
  3.            ((1 1 a3) (1 2 a3) (1 3 a3))
  4.           )
  5.       l2 '(b1 b2 b3)
  6. )
  7. (mapcar '(lambda (x y)
  8.            (mapcar '(lambda (z) (subst y (caddr z) z)) x)
  9.          )
  10.         l1
  11.         l2
  12. )

点评

当表中a1和前面项相同时,用subst会导致结果不正确!  发表于 2014-6-30 10:30
 楼主| 发表于 2014-6-30 14:36:36 | 显示全部楼层
Gu_xl 发表于 2014-6-30 10:13

真的很感谢
 楼主| 发表于 2014-6-30 14:37:14 | 显示全部楼层
ll_j 发表于 2014-6-30 10:21

非常谢谢你
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-17 06:23 , Processed in 0.178991 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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