深渊心岑@clown 2023-04-22 16:54 采纳率: 63.6%
浏览 23

使用python的按钮控件来增删指定唯一单词

现在我已经成功添加了指定的单词,但是在第二次按按钮时删除该单词,以下代码会删错,比如结果含有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()
 

  • 写回答

1条回答 默认 最新

  • Lucille_Watson 2023-08-01 19:51
    关注

    看看jieba库有没有这样的功能

    评论

报告相同问题?

问题事件

  • 创建了问题 4月22日

悬赏问题

  • ¥15 os.listdir文件路径找不到
  • ¥15 使用gojs3.0,如何在nodeDataArray设置好text的位置,再go.TextBlock alignment中进行相应的改变
  • ¥15 psfusion图像融合指标很低
  • ¥15 银河麒麟linux系统如何修改/etc/hosts权限为777
  • ¥50 医院HIS系统代码、逻辑学习
  • ¥30 docker离线安装mysql报错,如何解决?
  • ¥15 构建工单的总账影响在哪里查询或修改
  • ¥15 三个简单项目写完之后有重赏之后联系我
  • ¥15 python报内存不能read错误
  • ¥15 hexo安装这种情况怎么办