Mathematica 7中列表之间的多个赋值

Exp*_*git 4 wolfram-mathematica

假设有两个列表a = {a1, a2, a3},并b = {b1, b2, b3}和我想写一个赋值语句,使a1=b1,a2=b2,a3=b3这只是指ab:

Thread[a = b]
Run Code Online (Sandbox Code Playgroud)

但它只会使a={b1,b2,b3}.使用:=(SetDelayed)代替=不起作用.
有解决方案吗 谢谢.

Wil*_*son 5

我认为Thread唯一适用于"明确"的清单; 在操作之前需要扩展变量.

经过一些实验,这对我有用:

a = {a1, a2, a3};
b = {b1, b2, b3};
Thread[Set[Evaluate@a, Evaluate@b]];
{a1, a2, a3}

你也可以写Thread[Evaluate@a = Evaluate@b]; 只是取决于你发现哪些更具可读性.