假设有两个列表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}; Thread[Set[Evaluate@a, Evaluate@b]]; {a1, a2, a3}
你也可以写Thread[Evaluate@a = Evaluate@b]
; 只是取决于你发现哪些更具可读性.