Then the key of the text input widget would be "1" and Streamlit would register st.session_state["1"]="" when the widget is initialized. The key parameter is for the key; the value is stored in Session State associated to that key. So while you could create a dictionary or list of keys associated to a single key in Session State, Streamlit would still take those keys as you use them to register them at the top level of Session State.