我将举例说明我的问题:我有一个list1:[x*y*z,x*z,y]
形式的列表。现在我有另一个列表list2:[1,2,3]
。我尝试做的是将值list2[1]
(即1)替换为list1
的x变量,将值list2[2]
替换为{{1}的y变量}}, 等等。输出应为list1
或[1*2*3,1*3,2]
。请注意,两个列表的长度相同。
我试图做的是:
[6,3,2]
但它没有用。我怎样才能做到这一点?
提前致谢,
最好的问候。
答案 0 :(得分:1)
(%i1) list1: [x*y*z,x*z,y] $
(%i2) kk: ['x, 'y, 'z] $
(%i3) vv: [ 1, 2, 3] $
(%i4) sl: maplist(lambda([k, v], k = v), kk, vv) $
(%i5) subst(sl, list1);
(%o5) [6, 3, 2]