Jupyter notebook ipywidgets-单击后在列表中显示下一个值

Jupyter notebook ipywidgets-单击后在列表中显示下一个值,jupyter-notebook,ipywidgets,Jupyter Notebook,Ipywidgets,我试图使用ipywidgets来显示列表中的下一个值(在Jupyter笔记本中),单击按钮后显示为display\u vals。然而,对于下面的代码片段,我得到了如下错误 local variable 'i' referenced before assignment 这是我的片段 from IPython.display import display, clear_output import ipywidgets as widgets button = widgets.Button(desc

我试图使用
ipywidgets
来显示列表中的下一个值(在Jupyter笔记本中),单击按钮后显示为
display\u vals
。然而,对于下面的代码片段,我得到了如下错误

local variable 'i' referenced before assignment
这是我的片段

from IPython.display import display, clear_output
import ipywidgets as widgets

button = widgets.Button(description="Click Me!")
display(button)

display_vals = ['a', 'b', 'c']
i = 0

def on_button_clicked(b):
    print(display_vals[i])
    clear_output()
    i += 1

button.on_click(on_button_clicked)

我想我只是不知道在单击按钮时如何解析变量。

可以通过将I声明为全局变量并包含if语句来实现,如下所示:

from IPython.display import display, clear_output
import ipywidgets as widgets

button = widgets.Button(description="Click Me!")
display(button)

display_vals = ['a', 'b', 'c']
i = 0

def on_button_clicked(b):
    global i

    clear_output()
    if i < len(display_vals):
        print(display_vals[i])
        i += 1

button.on_click(on_button_clicked)
从IPython.display导入显示,清除\u输出
将IPyWidget作为小部件导入
button=widgets.button(description=“单击我!”)
显示(按钮)
显示值=['a'、'b'、'c']
i=0
def on_按钮_单击(b):
全球i
清除输出()
如果i
但是,如果你决定走这条路,你应该将
i
重命名为更独特的名称