在列表中替换

Subst in a list

我举个例子来解释我的问题:我有一个list1:[x*y*z,x*z,y]形式的列表。现在我有另一个列表,list2:[1,2,3]。我要做的是将值 list2[1],即 1,代入我的 list1 的 x 变量,将值 list2[2] 代入我的 list1 的 y 变量, 等等。输出应为 [1*2*3,1*3,2][6,3,2]。请注意,两个列表的长度相同。

我尝试做的是:

list3:for i:1 thru length(list2) do (subst(list2[i],list1[i])

但是没有用。我怎样才能做到这一点?

提前致谢,

此致。

(%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]