提问人:WaqarQureshii 提问时间:11/17/2023 更新时间:11/18/2023 访问量:64
如何将包含不同数量项目的列表解压缩到单个变量中?
How do I unpack a list with a varying amount of items into individual variables?
问:
import streamlit as st
sidebar_counter = 9
# this number can vary depending on what is selected by the user
column_list = [col1, col2, col3, col4, col5]
# column_list can vary and be a list that is [col1, col5] and just two items depending on what is selected by the user
#my goal is to assign each col# to each column as follows:
col1, col2, col3, col4 = st.columns(sidebar_counter)
# where sidebar_counter will already include the number of columns selected.
有没有办法根据所选内容动态解压缩 COL1、COL2、COL3?
我尝试了以下方法:
import streamlit as st
column_list = st.columns(sidebar_counter)
但是,这不起作用,因为当我调用任何列(例如 col1)时,它没有被定义。
答:
-1赞
gamez_code
11/17/2023
#1
您可以在全局字典中设置变量,然后可以在脚本中调用该变量。例如:
for s in range(sidebar_counter):
globals()[f"col{s+1}"] = column_list[s]
或者,您可以在本地字典中设置变量,然后将该变量调用到函数中。例如:
for s in range(sidebar_counter):
locals()[f"col{s+1}"] = column_list[s]
但是,在我看来,最好的方法是将变量保存在常规字典中,然后您可以使用该字典。
评论
1赞
Samwise
11/18/2023
由于这些值已经在列表中,因此即使将其放入字典中也是不必要的复杂情况。
0赞
gamez_code
11/18/2023
@Samwise,我同意了
0赞
WaqarQureshii
11/18/2023
嗯,我不熟悉“全球词典”这个词,可能需要做一些研究来实现它。
0赞
gamez_code
11/18/2023
@WaqarQureshii 是 python 保存全局变量的字典。可能在文档中被称为不同。
0赞
ferdy
11/18/2023
#2
你试过这个吗?
import streamlit as st
sidebar_counter = 9
column_list = st.columns(sidebar_counter)
for i in range(sidebar_counter):
with column_list[i]:
st.write(f'column {i+1}')
# other stuffs ...
评论