现在我已经成功添加了指定的单词,但是在第二次按按钮时删除该单词,以下代码会删错,比如结果含有skyabcd,sky。
我想删掉sky(还有sky右边的逗号一起删了),结果应该只剩skyabcd,
但是结果却是abcd,sky
它把skyabcd中的sky删除了,这样的情况如何解决,我想删除唯一指定的sky,而不被相似单词的字母影响。
代码如下,请问如何修改,简洁一点最好。
import ttkbootstrap as ttk
ck = ttk.Window(
title="环境风景",
size=(750, 600), # 窗口的大小
position=(600, 100), # 窗口位置
resizable=(False, False), # 让窗口不可更改大小
alpha=0.91, # 窗口透明度
)
show_text = ttk.Text(ck, width=70, height=4)
show_text.place(x=10, y=10)
added_words = {} # 用于记录已添加的单词
def text_add():
word = 'sky'
if word not in added_words:
show_text.insert('end', word + ', ')
added_words[word] = True
else:
start_pos = show_text.search(word, '1.0', 'end')
end_pos = f"{start_pos}+{len(word)}c"
show_text.delete(start_pos, end_pos)
added_words.pop(word, None)
def text_add2():
word = 'skyabcd'
if word not in added_words:
show_text.insert('end', word + ', ')
added_words[word] = True
else:
start_pos = show_text.search(word, '1.0', 'end')
end_pos = f"{start_pos}+{len(word)}c"
show_text.delete(start_pos, end_pos)
added_words.pop(word, None)
b1 = ttk.Button(ck, text='天空', command=text_add)
b1.place(x=10, y=120)
b2 = ttk.Button(ck, text='天空2', command=text_add2)
b2.place(x=10, y=180)
ck.mainloop()
看看jieba库有没有这样的功能