Gar*_*Gar 2 python ipython jupyter-notebook ipywidgets
我想创建一个复选框列表,以便用户可以从数据列表中进行选择。我已经为每条数据创建了复选框,现在我希望勾选这些复选框以将数据添加到列表中。
import ipywidgets as widgets
data = ["data1", "data2", "data3", "data4"]
selected_data = []
checkboxes = [widgets.Checkbox(value=False, description=label) for label in data]
widgets.VBox(children=checkboxes)
Run Code Online (Sandbox Code Playgroud)
我想做一些类似的事情
def add_to_selected(d):
selected_data.append(d)
checkboxes[0].observe(add_to_selected)
Run Code Online (Sandbox Code Playgroud)
这将向列表添加一个值selected_data。我不知道如何让 VBox 中的复选框表现得像这样。
小智 8
我知道我在这里已经很晚了,但这可能会对将来的其他人有所帮助。
在 Jupyter 中,这是您的第一个块:
import ipywidgets as widgets
data = ["data1", "data2", "data3", "data4"]
checkboxes = [widgets.Checkbox(value=False, description=label) for label in data]
output = widgets.VBox(children=checkboxes)
display(output)
Run Code Online (Sandbox Code Playgroud)
上面将输出一个 VBox,其中包含列表变量“data”中的四个选项。然后要获取所选值的列表,您可以执行以下操作:
selected_data = []
for i in range(0, len(checkboxes)):
if checkboxes[i].value == True:
selected_data = selected_data + [checkboxes[i].description]
print(selected_data)
Run Code Online (Sandbox Code Playgroud)
请注意,我将 selected_data 列表从选择之前移至选择之后。这样做的原因是,如果您要运行多次,for 循环的自我替换 selected_data 部分不会连续添加先前选择的选择。