Python:迭代一系列数字作为 Plotly Dash 的输入

Python: Iterate a range of numbers as input for Plotly Dash

我目前正在 Python 上开发 Plotly Dash。这是我的代码示例:

    html.Div([
        html.Div([html.Label('View max selection')]),
        dcc.Slider(
            id   = 'view-max-bar',
            min  = 10,
            max  = 500,
            value= 10,
            step = 10,
            marks= {10: '10', 20: '20', 30: '30', 40: '40', 50: '50'}
    )], style = {'display' : 'inline-block', 'width': '50%', 'margin-top': '10px'})

我的意图是将 marks 从 10 到 500 的范围分配,步长为 10 到 dcc.Slider。我可以一个一个地输入值,但这会很冗长且效率低下。有更好的方法吗?

您可以在破折号代码之前实现类似于此代码的内容:

counter = 0

marksList = []

marks = {}

while counter < 500:
    counter = counter +10
    marksList.append(counter)
   
for i in range(len(marksList)):
    marks[marksList[i]] = str(marksList[i])

它正在做的是使用 while 循环,它正在制作一个计数器列表,该计数器增加了 10,一直到 500,并且 for 语句正在使用每个数字在计数器列表中,并使键值对成为破折号代码中标记参数所必需的。字典 marks 看起来像这样:

{10: '10', 20: '20', 30: '30', 40: '40', 50: '50', 60: '60', 70: '70', 80: '80', 90: '90', 100: '100', 110: '110', 120: '120', 130: '130', 140: '140', 150: '150', 160: '160', 170: '170', 180: '180', 190: '190', 200: '200', 210: '210', 220: '220', 230: '230', 240: '240', 250: '250', 260: '260', 270: '270', 280: '280', 290: '290', 300: '300', 310: '310', 320: '320', 330: '330', 340: '340', 350: '350', 360: '360', 370: '370', 380: '380', 390: '390', 400: '400', 410: '410', 420: '420', 430: '430', 440: '440', 450: '450', 460: '460', 470: '470', 480: '480', 490: '490', 500: '500'}

从这里,您可以简单地把字典 marks 是破折号参数中变量标记的值。

您正在寻找一个名为听写理解的 python 功能。而不是

marks= {10: '10', 20: '20', 30: '30', 40: '40', 50: '50'}

你可以写

marks = {i:str(i) for i in range(10,51,10)}

其中范围的参数是 (start, stop, step)stop 是独占的(因此 51 包含 50)。所以去 500:

marks = {i:str(i) for i in range(10,501,10)}