列表内字符串替换失效求助:hover列表未按预期更新
搞定hover列表替换失效的问题
嘿,我一眼就瞅出问题所在了——Python里的字符串是不可变的!你调用text.replace(...)的时候,它根本不会修改原来的字符串,而是返回一个全新的替换后的字符串。你光调用方法却没把新字符串存回hover列表里,那列表当然还是原样啦😉
具体怎么改?给你两种实用方案:
方案1:用enumerate遍历拿索引,直接修改列表元素
# 假设你有判断点击坐标是否在对应区域的逻辑函数is_in_target_area for idx, text in enumerate(hover): # 检查当前元素对应的区域是否被点击 if is_in_target_area(click_x, click_y, planes[idx]): # 把替换后的新字符串赋值回列表的对应位置 hover[idx] = text.replace("要替换的旧内容", "替换后的新内容")
方案2:用列表推导式生成新列表(更简洁)
如果不想搞索引操作,直接生成一个新的hover列表覆盖原列表就行:
# 用zip把hover和planes的元素一一对应起来 hover = [ text.replace("要替换的旧内容", "替换后的新内容") if is_in_target_area(click_x, click_y, plane) else text for text, plane in zip(hover, planes) ]
这两种方式都能让符合条件的字符串被正确替换,你选哪种顺手就用哪种~
内容的提问来源于stack exchange,提问作者Sterling Butters
相关产品推荐
相关产品推荐

