You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Streamlit中如何根据选中数字生成对应文本框并解决TypeError报错

错误原因

range(int(number_of_replacement))返回的是整数类型的可迭代对象,每次遍历仅输出单个整数,你使用i, old_val两个变量尝试拆分单个整数,才会触发TypeError: cannot unpack non-iterable int object报错。

修复代码

直接删除循环中多余的old_val变量声明即可,old_val可以在循环内部正常赋值:

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 in range(int(number_of_replacement)):
            old_val = st_input("Old value",key=i)
可选优化建议
  • 如果需要收集所有输入的旧值,可以提前初始化列表存储结果,比如在循环外写old_vals = [],循环内部追加old_vals.append(st_input("Old value",key=i))
  • 可以加判断逻辑,当number_of_replacement为0时给出提示,避免用户看不到输入框产生误解

内容的提问来源于stack exchange,提问作者DevLeb2022

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 21:45:06