динамически создавать переменные в цикле for - PullRequest
0 голосов
/ 24 января 2020

Я знаю, что этот вопрос задавался несколько раз, я нашел какое-то сообщение на этом форуме, но они, похоже, не работают, поэтому я спрашиваю снова.

В основном мне нужно создать номер графика и код ниже

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

, и я хотел бы привести его в порядок, используя для l oop, поэтому замена числа на переменную, но выполнение чего-то, как показано ниже, не работает

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

Я получаю

SyntaxError: не могу присвоить оператору

Как мне привести в порядок это число «одного и того же» кода в аккуратный форма, пожалуйста?

* Я также знаю, что существует опасность использования exe c, если это не путь к go, что может быть лучше python, пожалуйста?

Редактировать: Это мой последний рабочий код, спасибо всем за ввод

for i in range(5):
    figures.update({f'fig{i}':go.Figure()})
    eval('figures["fig'+str(i)+'"]').update_layout(showlegend = True, xaxis_title = "Time(s)")  

Здесь я могу контролировать количество создаваемой переменной (этот код должен быть запущен. Также, установка это в нормальном для формы l oop позволяет мне делать больше других вещей наедине с текущим фигура. Наконец, метод словаря позволяет связать имя с рисунком, что обеспечивает удобство

1 Ответ

2 голосов
/ 24 января 2020

Почему бы не попробовать это:

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 различных переменных.

...