How can I read the value of selected index instead selected text on a radio button?
Steps to reproduce
Code snippet:
import streamlit as st
genre = st.radio(
"What's your favorite movie genre",
[":rainbow[Comedy]", "***Drama***", "Documentary :movie_camera:"],
index=0,
)
st.write("You selected:", genre)
st.write(“You selected:”, genre) → this line will print the selected text - however, can I get read the selected value/index - of the selected text?
While the st.radio function doesn’t directly provide the selected index value, you can use Python’s index() method on the list of options.
import streamlit as st
options = [":rainbow[Comedy]", "***Drama***", "Documentary :movie_camera:"]
genre = st.radio(
"What's your favorite movie genre?",
options,
index=0,
)
st.write("You selected:", genre)
selected_index = options.index(genre)
st.write(f"Index of the selected genre is: {selected_index}")
Now, when you select an option, Streamlit will print both the selected genre and its index.
One possible way is using the indexes as options, then use the format_func argument to st.radio() to set the labels in the dropdown.
format_func(function)
Function to modify the display of radio options. It receives the raw option as an argument and should output the label to be shown for that option. This has no impact on the return value of the radio.