单一分配的工作方式如下:(可能有更好的方法)
b='bb'
vars()[b] = 10
bb
>>>10
但如果我这样做:
c='cc'
vars() [b,c]= 10,11
它没有成功分配bb
and cc
。
我不明白为什么,也不明白如何最好地做到这一点。
谢谢
PS,有几个人非常合理地问我为什么要这样做。我发现我正在根据用户指定的选项设置很多变量和对象。因此,如果用户指定选项 2、3 和 7,我想创建 a2、a3 和 7,以及 b2、b3、b7 等。这可能不是通常的做法,但使用 vars 和 eval 是一种非常简单和透明的方式做到这一点,需要简单简洁的代码:
对于 input_vector 中的 i: vars()['a'+input_vector[i]] = create_a (input_vector[i])
对于 input_vector 中的 i:vars()['b'+input_vector[i]] = create_b (input_vector[i])
这适用于某些数据。问题是当我使用另一个函数 create_c_and_d 时。这需要我将以上两行压缩成一个函数调用。如果这可以使用字典轻松完成,我很乐意切换到该方法。我是 python 新手,所以它是否可以对我来说并不明显。