假设有两个列表 a = {a1, a2, a3}
和 b = {b1, b2, b3}
,我想写一个赋值语句来使 a1=b1,a2=b2,a3=b3
只引用 a
和 b
:
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/