深渊心岑@clown 2023-04-24 19:50 采纳率: 63.6%
浏览 35
已结题

python更新列表的值怎么继续获取其索引

我想使用值来找到指定的索引。
但是值发生改变后就无法获取该值的索引值了。(索引值不变,只是值变了,但这也导致无法继续使用该值)
如何更新列表当中的该值,按照我下面的思路,该如何编写代码。
代码以及思路如下:


```python
import ttkbootstrap as ttk
from ttkbootstrap.constants import *
import re
l = '('  # 设置符号变量
r = ')'
hjfj1 = 'hello'
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(hjfj1)  # 获取指定元素索引,该值是hello,但是加完括号后就变成了(hello),索引不变但是我无法继续使用该值
        #如何继续使用该值进行获取索引,我不知道该如何更新。
        s1=str_to_list[index_hjfj]

        s2=re.sub(rf'\b({hjfj1})\b', f'{l}\\1{r}', s1)


        str_to_list[index_hjfj]=s2

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

        showtag_text1.delete('1.0', END)  # 重新清理文本框内容
        showtag_text1.insert('insert', text_over)  # 最后向文本框插入内容

    except:
        pass

def rec_hello():
    '''减权重函数'''

    try:
        hjfj1_bt_text = showtag_text1.get('1.0', END)
        hjfj1_mix=l+hjfj1+r
        s = hjfj1_bt_text.index(hjfj1_mix)
        l666 = list(hjfj1_bt_text)  # 把字符串拆分为列表,列表里面全部是单个字母的字符
        l1 = l666
        del l1[s]
        del l1[s + len(hjfj1_mix)-2]
        ss = len(hjfj1_mix) + 1
        l666.insert(s + ss, '')
        l_over = ''.join(l666)  # 删改完成列表后重新加入为字符串
        l_over.strip()
        showtag_text1.delete('0.0', END)
        showtag_text1.insert('insert', l_over.strip())
    except:
        pass

ttk.Button(root, text='+括号', command=add_hello).place(x=10, y=90)
ttk.Button(root, text='-括号', command=rec_hello).place(x=10, y=140)
root.mainloop()

```

  • 写回答

2条回答 默认 最新

  • Lemon2050 2023-04-24 20:06
    关注

    维护一个值与索引的dict:

    {
      val1: index1,
      val2: index2
    }
    

    在更新值的时候,也更新这个dict。我不清楚我是不是理解了你的意思。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月5日
  • 已采纳回答 4月27日
  • 创建了问题 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安装这种情况怎么办