Display a slider widget to select items from a list.
This also allows you to render a range slider by passing a two-element tuple or list as the value.
The difference between st.select_slider and st.slider is that select_slider accepts any datatype and takes an iterable set of options, while st.slider only accepts numerical or date/time data and takes a range as input.
Function signature[source] | |
---|---|
st.select_slider(label, options=(), value=None, format_func=special_internal_function, key=None, help=None, on_change=None, args=None, kwargs=None, *, disabled=False, label_visibility="visible") | |
Parameters | |
label (str) | A short label explaining to the user what this slider is for. The label can optionally contain GitHub-flavored Markdown of the following types: Bold, Italics, Strikethroughs, Inline Code, and Links. Unsupported Markdown elements are unwrapped so only their children (text contents) render. Display unsupported elements as literal characters by backslash-escaping them. E.g., "1\. Not an ordered list". See the body parameter of st.markdown for additional, supported Markdown directives. For accessibility reasons, you should never set an empty label (label="") but hide it with label_visibility if needed. In the future, we may disallow empty labels by raising an exception. |
options (Iterable) | Labels for the select options in an Iterable. This can be a list, set, or anything supported by st.dataframe. If options is dataframe-like, the first column will be used. Each label will be cast to str internally by default. |
value (a supported type or a tuple/list of supported types or None) | The value of the slider when it first renders. If a tuple/list of two values is passed here, then a range slider with those lower and upper bounds is rendered. For example, if set to (1, 10) the slider will have a selectable range between 1 and 10. Defaults to first option. |
format_func (function) | Function to modify the display of the labels from the options. argument. It receives the option as an argument and its output will be cast to str. |
key (str or int) | An optional string or integer to use as the unique key for the widget. If this is omitted, a key will be generated for the widget based on its content. Multiple widgets of the same type may not share the same key. |
help (str) | An optional tooltip that gets displayed next to the select slider. |
on_change (callable) | An optional callback invoked when this select_slider's value changes. |
args (tuple) | An optional tuple of args to pass to the callback. |
kwargs (dict) | An optional dict of kwargs to pass to the callback. |
disabled (bool) | An optional boolean, which disables the select slider if set to True. The default is False. |
label_visibility ("visible", "hidden", or "collapsed") | The visibility of the label. If "hidden", the label doesn't show but there is still empty space for it above the widget (equivalent to label=""). If "collapsed", both the label and the space are removed. Default is "visible". |
Returns | |
(any value or tuple of any value) | The current value of the slider widget. The return type will match the data type of the value parameter. |
Examples
import streamlit as st color = st.select_slider( "Select a color of the rainbow", options=[ "red", "orange", "yellow", "green", "blue", "indigo", "violet", ], ) st.write("My favorite color is", color)
And here's an example of a range select slider:
import streamlit as st start_color, end_color = st.select_slider( "Select a range of color wavelength", options=[ "red", "orange", "yellow", "green", "blue", "indigo", "violet", ], value=("red", "blue"), ) st.write("You selected wavelengths between", start_color, "and", end_color)
Featured videos
Check out our video on how to use one of Streamlit's core functions, the select slider! π
In the video below, we'll take it a step further and make a double-ended slider.
Still have questions?
Our forums are full of helpful information and Streamlit experts.