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

如何在Streamlit的st.sidebar.selectbox中设置别名并获取实际值?

Streamlit实现选择框显示别名、返回实际值

Streamlit完全支持这个需求,有两种常用的实现方式:

方法一:使用字典映射

先定义别名与实际raw值的对应关系,选择框显示字典的键,选中后通过字典取值得到实际raw值:

import streamlit as st

# 定义别名和实际值的映射字典
name_map = {
    "Name A": "A949",
    "Name B": "B384"
}

# 侧边栏选择框,显示别名选项
selected_alias = st.sidebar.selectbox("选择目标名称", options=list(name_map.keys()))

# 获取对应的实际raw值
raw_name = name_map[selected_alias]
st.write(f"当前获取的raw值:{raw_name}")

方法二:使用元组列表+格式化函数

将每个选项定义为(显示别名,实际raw值)的元组,通过format_func指定选择框显示的内容,选中后提取元组的第二个元素得到raw值:

import streamlit as st

# 定义包含显示名和实际值的元组列表
name_options = [("Name A", "A949"), ("Name B", "B384")]

# 侧边栏选择框,用format_func设置显示文本
selected_item = st.sidebar.selectbox(
    "选择目标名称",
    options=name_options,
    format_func=lambda item: item[0]  # 指定显示元组的第一个元素
)

# 提取实际raw值
raw_name = selected_item[1]
st.write(f"当前获取的raw值:{raw_name}")

两种方法都能实现你要的效果,字典映射更适合选项数量多、需要频繁修改映射关系的场景;元组列表的方式代码更紧凑,适合选项较少的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 04:45:04