假设有两个列表 a = {a1, a2, a3}b = {b1, b2, b3} ,我想写一个赋值语句来使 a1=b1,a2=b2,a3=b3 只引用 ab :

Thread[a = b]

但它只会使 a={b1,b2,b3} 。使用 := (SetDelayed) 而不是 = 也不起作用。
有什么解决办法吗?谢谢。

最佳答案

我认为 Thread 仅适用于“显式”列表;变量需要在操作之前进行扩展。

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

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

你也可以写 Thread[Evaluate@a = Evaluate@b] ;只取决于你觉得哪个更具可读性。

关于wolfram-mathematica - Mathematica 7 中列表之间的多重赋值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1653707/

10-11 15:42