peraperson 发表于 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
请问有什么办法,想了很久都没想出来。。。
谢谢

Gu_xl 发表于 2014-6-30 10:13:53

(mapcar '(lambda (a b) (mapcar '(lambda (x) (list (car x) (cadr x) b)) a)) lst1 lst2)

ll_j 发表于 2014-6-30 10:21:14


(setq l1 '(((1 1 a1) (1 2 a1))
         ((2 1 a2))
         ((1 1 a3) (1 2 a3) (1 3 a3))
          )
      l2 '(b1 b2 b3)
)
(mapcar '(lambda (x y)
         (mapcar '(lambda (z) (subst y (caddr z) z)) x)
         )
      l1
      l2
)

peraperson 发表于 2014-6-30 14:36:36

Gu_xl 发表于 2014-6-30 10:13 static/image/common/back.gif


真的很感谢

peraperson 发表于 2014-6-30 14:37:14

ll_j 发表于 2014-6-30 10:21 static/image/common/back.gif


非常谢谢你

guankuiwu 发表于 2021-2-15 22:59:53

学习了!
页: [1]
查看完整版本: 再次提问一个关于表操作的问题