Возможно ли оптимизировать код Plotly?
Код рисует горизонтальные линии по заданным параметрам в Plotly, но смущает количество повторяющихся строк
shapes=[dict(type='line', xref='paper', yref='y', line_width=0.8,
x0=0, x1=1, y0=avc, y1=avc, line_color = '#A9A9A9',
line = dict(dash='solid')),
dict(type='line', xref='paper', yref='y', line_width=0.8,
x0=0, x1=1, y0=mic, y1=mic, line_color = '#A9A9A9',
line = dict(dash='dot')),
dict(type='line', xref='paper', yref='y', line_width=0.8,
x0=0, x1=1, y0=buyd, y1=buyd, line_color = '#A9A9A9',
line = dict(dash='dot')),
dict(type='line', xref='paper', yref='y', line_width=0.8,
x0=0, x1=1, y0=selld, y1=selld, line_color = '#A9A9A9',
line = dict(dash='dot')),
dict(type='line', xref='paper', yref='y', line_width=0.8,
x0=0, x1=1, y0=buyu, y1=buyu, line_color = '#A9A9A9',
line = dict(dash='dot')),
dict(type='line', xref='paper', yref='y', line_width=0.8,
x0=0, x1=1, y0=sellu, y1=sellu, line_color = '#A9A9A9',
line = dict(dash='dot')),
dict(type='line', xref='paper', yref='y', line_width=0.8,
x0=0, x1=1, y0=mac, y1=mac, line_color = '#A9A9A9',
line = dict(dash='dot'))],
Возможно ли сократить до нечто подобного?:
shapes=[dict(name='candles', type='line',
xref='paper', yref='y', line_width=0.8,
x0=0, x1=1,
y0=[avc, mic, buyd, selld, buyu, sellu, mac],
y1=[avc, mic, buyd, selld, buyu, sellu, mac],
line_color = '#A9A9A9', line = dict(dash='dot'))],
Ответы (1 шт):
Автор решения: insolor
→ Ссылка
Можно использовать list comprehension
shapes = [
dict(name='candles', type='line',
xref='paper', yref='y', line_width=0.8,
x0=0, x1=1,
y0=y,
y1=y,
line_color='#A9A9A9', line=dict(dash='dot'))
for y in [avc, mic, buyd, selld, buyu, sellu, mac]
]