如何将函数的输出累积到 streamlit 中的列表中,以便列表持续存在?
How do I accumulate the output of a function onto a list in streamlit so that the list persists?
Streamlit 每次 运行 时都会转储所有对象。甚至任何交互都会触发此转储。 Streamlit 允许函数缓存。我需要的只是函数缓存少一点。
我想做的是累积由用户交互触发的函数评估的点数:
points = []
setting = st.slider("set the value",value=5,min=1,max=10)
points.append([setting, func(setting)])
st.write(points)
理想情况下,我会随着用户的互动逐渐积累积分。这似乎应该是可能的。怎么做到的?
您可以使用 SessionState hack:
import SessionState
session_state = SessionState.get(points=[])
setting = st.slider("set the value", value=5, min_value=1, max_value=10)
session_state.points.append(setting)
st.write(session_state.points)
SessionState 的来源:https://gist.github.com/tvst/036da038ab3e999a64497f42de966a92
讨论:https://discuss.streamlit.io/t/preserving-state-across-sidebar-pages/107/15
关于多页面应用程序的更多近期工作 - https://discuss.streamlit.io/t/multi-page-app-with-session-state/3074
Streamlit 每次 运行 时都会转储所有对象。甚至任何交互都会触发此转储。 Streamlit 允许函数缓存。我需要的只是函数缓存少一点。
我想做的是累积由用户交互触发的函数评估的点数:
points = []
setting = st.slider("set the value",value=5,min=1,max=10)
points.append([setting, func(setting)])
st.write(points)
理想情况下,我会随着用户的互动逐渐积累积分。这似乎应该是可能的。怎么做到的?
您可以使用 SessionState hack:
import SessionState
session_state = SessionState.get(points=[])
setting = st.slider("set the value", value=5, min_value=1, max_value=10)
session_state.points.append(setting)
st.write(session_state.points)
SessionState 的来源:https://gist.github.com/tvst/036da038ab3e999a64497f42de966a92
讨论:https://discuss.streamlit.io/t/preserving-state-across-sidebar-pages/107/15
关于多页面应用程序的更多近期工作 - https://discuss.streamlit.io/t/multi-page-app-with-session-state/3074