在for循环中动态创建变量

问题描述 投票:0回答:2

我知道这个问题已经问过几次了,我确实在这个论坛上找到了一些帖子,但是它们似乎没有用,这就是为什么我再问一次。

基本上,我必须创建一些图形,下面的代码是

fig1 = go.Figure()
fig1.update_layout(showlegend = True, xaxis_title = "Time(s)")

而且我想使用for循环来整理它,因此用一个变量替换数字,但是做下面的事情是行不通的

exec('"fig"+str(i) = go.Figure()')

我收到SyntaxError:无法分配给运算符

如何将这个数量相同的代码整理成整齐的表格?

**我也知道使用exec存在危险,如果这不是可行的方法,请问哪种python更好的方法?

python variables exec eval
2个回答
0
投票

为什么不试试这个:

figures = []

for i in range(loop):
    figures.append(go.Figure())

#at this point you will now have n figures each of which you can reference

这样,如果您知道按其排序的顺序,仍然可以找到所有图。否则,您可以简单地使用字典。我认为它比制作10个不同的变量更干净。


0
投票

尝试一下:

tempVar = "fig"+str(i)
globals()[tempVar]= go.Figure()

如果fig1的值为i,则上述代码将创建名为1的变量;如果fig2的值为i,则将创建名为2的变量>

也请检查以下示例:

var = 0

for i in range(0,3):
  tempVar = "var"+str(i)
  globals()[tempVar] = i

这将创建名为var0,var1 and var2的变量,其值分别为0,1,2

© www.soinside.com 2019 - 2024. All rights reserved.