首页 > 解决方案 > 如何根据所选数字显示文本字段?

问题描述

我有一个 python 代码,允许用户选择他想在文本字段中显示的数字。该程序将遍历所选数字的范围并创建一个文本字段。

但是,一旦我运行脚本,它就会崩溃并产生这个错误:

错误:TypeError:无法解压不可迭代的 int 对象 Traceback:文件“F:\AIenv\lib\site-packages\streamlit\script_runner.py”,第 354 行,在 _run_script exec(code, module.dict) 文件“f: \AIenv\streamlit\app2.py”,第 1309 行,在 main() 文件“f:\AIenv\streamlit\app2.py”,第 682 行,在 main for i 中,old_val 在范围内(int(number_of_replacement)):

number_of_replacement = st.number_input("Number of values To Replace",0,100)
with st.form(key='my_form'):
    col1,col2 = st.columns(2)
    st_input = st.number_input if is_numeric_dtype(df[columns]) else st.text_input

    with col1:
        for i , old_val in range(int(number_of_replacement)):
            old_val = st_input("Old value",key=i)

标签: pythonfor-loopstreamlit

解决方案


您的 for 循环似乎是错误的。

要么删除i

with col1:
    for old_val in range(int(number_of_replacement)):
        old_val = st_input("Old value",key=i)

或者,如果您i稍后在代码enumerate中需要可迭代的索引:

with col1:
    for i, old_val in enumerate(range(int(number_of_replacement))):
        old_val = st_input("Old value",key=i)

推荐阅读