在列表中替换
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]
我举个例子来解释我的问题:我有一个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]