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

如何实现Streamlit Multiselectbox选择列表选项并合并结果?

实现Streamlit多选框显示列表名称并映射对应列表的最优方法

核心思路是用字典建立显示名称与目标列表的映射关系,既能让多选框显示友好的字符串选项,又能快速根据选中的名称获取对应列表并合并,代码简洁且易维护。

具体实现步骤:

  • 定义字典,键为多选框要显示的名称(如"list_1"),值为对应的实际列表
  • 将字典的键作为st.multiselect的选项参数,确保界面显示字符串
  • 遍历用户选中的名称,取出对应列表并合并成统一列表
  • 用合并后的列表完成DataFrame的筛选

完整代码示例:

import streamlit as st

# 定义原始列表
list_1 = ['1','2','3','4']
list_2 = ['a','b','c','d']
list_3 = ['!','?','€','%']

# 建立显示名称与列表的映射字典
list_mapping = {
    "list_1": list_1,
    "list_2": list_2,
    "list_3": list_3
}

# 配置多选框,显示字典的键
selected_names = st.multiselect('Choose List', options=list(list_mapping.keys()))

# 合并选中的对应列表
combined_list = []
for name in selected_names:
    combined_list.extend(list_mapping[name])

# 应用到DataFrame筛选(假设df已定义)
df = df[df['symbol'].isin(combined_list)]

额外优化提示:

  • 如果需要合并后的列表去重,可改成combined_list = list(set(combined_list))(注意会打乱顺序,需保持顺序的话可改用有序去重逻辑)
  • 后续新增列表时,只需在list_mapping字典中添加新的键值对,无需修改多选框和合并逻辑,扩展性强

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 12:35:09