После редактирования строки в Entry, содержимое сохраняется в Listbox под новым индексом, как оставить тот же?
Пытаюсь собрать отредактированный список категорий (к которым хочу подвязать продукты) в Listbox с тем же индексом, но после редактирования позиции она сохраняется под новым индексом, как изменить, чтобы индекс отредактированного оставался прежним?
Понимаю, что данный подход с индексами не верный, но как изменить это решение? id?
from tkinter import *
# удаление выделенного элемента
def delete():
selection = glistbox.curselection()
# мы можем получить удаляемый элемент по индексу
glistbox.delete(selection[0])
# добавление нового элемента
def add():
new_cat = cat_entry.get()
glistbox.insert(END, new_cat)
def edit():
select = glistbox.curselection()
editcat = (glistbox.get(select))
cat_entry.insert(END, editcat)
root = Tk()
root.geometry(f'500x500+100+100')
# добавляем в список категории
mylist = ['Фрукты/Овощи', 'Рыба/Мясо', 'Колбаса', 'Сладости', 'Молочка', 'Хлеб']
# текстовое поле и кнопка для добавления в список
cat_entry = Entry(width=40)
cat_entry.grid(column=0, row=0, padx=6, pady=6)
add_button = Button(text="Добавить", command=add).grid(column=1, row=0, padx=6, pady=6)
glistbox = Listbox()
glistbox.grid(row=1, column=0, columnspan=2, sticky=W + E, padx=5, pady=5)
for i in mylist:
glistbox.insert(END, i)
edit_button = Button(text="Изменить", command=edit).grid(row=2, column=0, padx=5, pady=5)
delete_button = Button(text="Удалить", command=delete).grid(row=2, column=1, padx=5, pady=5)
root.mainloop()
