Я пытаюсь сделать цикл из двух столбцов в Python и Dash-Bootstrap-Component.Проблема связана с Python, я не совсем понимаю, как этого добиться.Я перебираю список значений.Макет должен состоять из нескольких строк, каждая с двумя столбцами.
(код краткости)
figs=[]
figs.append(dict(data=data, layout=layout)) # dash
body = dbc.Container(
[
dbc.Row(
[
dbc.Col(
[
html.H4('ES'+str(i)),
dcc.Graph(figure=figs[i])
],
md=6
),
dbc.Col(
[
html.H4('ES'+str(i+1)),
dcc.Graph(figure=figs[i+1]) # <- how to increment i here? This syntax 'figs[i+1]' throws an error.
]
)
]
)
for i, value in enumerate(figs)
]
)
Мне нужно отобразить график figs[i]
в первом столбце, а затем увеличить индекс для отображенияследующий график во втором столбце.figs[i+1]
не работает, и я не уверен, как вложить цикл for или сделать цикл while в этом коде.Я приложил изображение, показывающее, что код работает при использовании одного и того же figs[i]
для двух столбцов.
ОБНОВЛЕНИЕ: благодаря ответу Эркандеманиже я смог прийти к выводу, который размещен здесь:
figs.append(dict(data=data, layout=layout))
body_py = [0] * len(figs)
for i, value in enumerate(figs):
left = i
right = i + 1 if i+1 < len(figs) else 0
body_py[left] = figs[left]
body_py[right] = figs[right]
body = dbc.Container(
[
dbc.Row(
[
dbc.Col(
[
html.H4('ES '+str(i)),
dcc.Graph(figure=body_py[i])
],
md=6,
)
for i, value in enumerate(body_py)
]
)
]
)
app.layout = html.Div([body])