Python 如何在不生成新单元格的情况下更改ipysheet中单元格的值?

Python 如何在不生成新单元格的情况下更改ipysheet中单元格的值?,python,jupyter-notebook,ipython,jupyter,handsontable,Python,Jupyter Notebook,Ipython,Jupyter,Handsontable,我正在运行一个Jupyter笔记本,其中包括一个简单的字符串到字符串字典(底部有一个空行,用户可以向字典添加新条目)。我正在使用ipysheet来实现这一点,我注意到,由于用户多次将不同的字典加载到工作表中,而没有重新启动内核,Jupyter笔记本的UI线程将减慢并最终崩溃 在做了一些研究之后,我发现每个单独的ipysheet单元都作为一个单独的小部件加载,我认为问题可能是我创建了太多的小部件,并且在卸载字典后没有丢弃它们。我决定尝试修改我的代码,使它只创建与显示该程序中迄今为止加载到内存中的单

我正在运行一个Jupyter笔记本,其中包括一个简单的字符串到字符串字典(底部有一个空行,用户可以向字典添加新条目)。我正在使用ipysheet来实现这一点,我注意到,由于用户多次将不同的字典加载到工作表中,而没有重新启动内核,Jupyter笔记本的UI线程将减慢并最终崩溃

在做了一些研究之后,我发现每个单独的ipysheet单元都作为一个单独的小部件加载,我认为问题可能是我创建了太多的小部件,并且在卸载字典后没有丢弃它们。我决定尝试修改我的代码,使它只创建与显示该程序中迄今为止加载到内存中的单个最大字典所需的单元格数量完全相同的单元格

不幸的是,我发现一旦已经通过编程方式创建了单元格,就无法更改其值。我尝试简单地设置
cell\u object.value=target\u value
,因为这似乎是所有其他ipysheet修改的接口,但发现这并没有更新单元格(即使我可以毫无问题地更改
sheet\u object.rows=new\u row\u number
)-即使在新词典应该加载到工作表中之后,它们仍然具有原始词典的值

有什么我遗漏的吗?UI是否未正确更新?ipysheet中的单元格类型是不可变的吗

def set_sheet_from_dictionary(self, target_dict):
        key_list = list(target_dict.keys())
        key_list.sort()

        key_length = len(target_dict.keys())

        with ipysheet.hold_cells():
            self.sheet1.rows = key_length+1

            for i in range(len(key_list)):
                if len(self.cell_list_a) <= i:
                    # These would probably be better as Column objects? But I'm trying to keep it simple for now
                    self.cell_list_a.append(ipysheet.cell(i, 0, key_list[i], read_only=True))
                    self.cell_list_b.append(ipysheet.cell(i, 1, target_dict[key_list[i]]))
                else:
                    self.cell_list_a[i].value = key_list[i]
                    self.cell_list_b[i].value = target_dict[key_list[i]]
            if len(self.cell_list_c) == 0:
                self.cell_list_c.append(ipysheet.cell(key_length, 0, ""))
                self.cell_list_c.append(ipysheet.cell(key_length, 1, ""))
            else:
                self.cell_list_c[0].value = ""
                self.cell_list_c[0].row = key_length
                self.cell_list_c[1].value = ""
                self.cell_list_c[1].row = key_length
def set\u sheet\u来自字典(self,target\u dict):
key\u list=list(target\u dict.keys())
key_list.sort()
key_length=len(target_dict.keys())
使用ipysheet.hold_单元格():
self.sheet1.rows=键长度+1
对于范围内的i(len(键列表)):
if len(自单元格列表)