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

python当中的列表修改元素操作

在此之前我写了一个gui,用户输入很多单词在文本框里,这些单词是自动用括号隔开的,我们已经获取到了文本框里的单词
我的目的是在一串获取到的,并且由逗号隔开的多个单词,可以在指定单词的两边加上括号,并且能无限加
我的思路是字符转列表,在进行修改列表内容,最后在添加进文本框。按照我的思路,改如何进行修改?

代码如下:

import ttkbootstrap as ttk
from ttkbootstrap.constants import *
l = '('#设置符号变量
r = ')'

root=ttk.Window(
title='''填词测试''',
    themename='solar',  # 设置主题
    size=(600, 600),  # 窗口的大小
    position=(300, 100),  # 窗口位置
    resizable=(False, False),  # 让窗口不可更改大小
    alpha=0.91,  # 窗口透明度
    #iconphoto=r'res\at.ico'
)

str = 'hello,world,hello world,python'
showtag_text1 = ttk.Text(root, height=4, cursor='heart')
showtag_text1.place(x=0, y=0, width=500)
showtag_text1.insert('insert',str)

def add_hello():
    try:
        get_str = showtag_text1.get('1.0', END)  # 这个字符串是用户输入的,我们获取到输入的值,这个值都是用逗号隔开的
        str_to_list = get_str.split(',')  # 先转换字符串为列表

        index_hjfj = str_to_list.index('hello')  # 获取指定元素索引
        str_to_list[index_hjfj] = l + 'hello' + r  # 修改指定索引的内容,也就是添加括号

        text_over = ','.join(str_to_list)  # 删改完成列表后重新加入为字符串
        text_over.strip()  # 删除末尾多余空格

        showtag_text1.delete('1.0', END)  # 重新清理文本框内容
        showtag_text1.insert('insert', text_over)  # 最后向文本框插入内容
    except:
        print('我已经成功添加括号到指定单词上,但是只能添加一次,这样列表就改变了,但是导致第二次无法添加,请问如何改善代码?')


ttk.Button(root,text='加括号',command=add_hello).place(x=10,y=90)


root.mainloop()

  • 写回答

3条回答 默认 最新

  • 於黾 2023-04-24 16:29
    关注

    直接replace不就好了吗

    评论

报告相同问题?

问题事件

  • 创建了问题 4月24日

悬赏问题

  • ¥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安装这种情况怎么办