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)}
我目前正在 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)}