Python如何实现嵌套字典内列表的指定字符串替换
问题原因
你遍历列表时获取的path是列表元素的临时副本,Python中字符串属于不可变类型,直接对path赋值只会修改临时变量的指向,不会改动原列表存储的内容,因此字典内的数值始终没有更新。
解决方法
方法1:按索引遍历修改原列表
这种方式直接操作原列表,无需额外生成新列表:
new_path = "was_replaced" for lib in info: files = info[lib]['files'] # 按索引遍历列表 for idx, path in enumerate(files): if "replace" in path: files[idx] = new_path print(new_path) # 验证输出 for lib in info: for path in info[lib]['files']: print(path)
方法2:用列表推导式生成新列表替换
写法更简洁,适合不需要保留原列表引用的场景:
new_path = "was_replaced" for lib in info: info[lib]['files'] = [new_path if "replace" in path else path for path in info[lib]['files']]
运行上述任意一种实现后,输出都会符合你的预期。
内容的提问来源于stack exchange,提问作者user16549853
相关产品推荐
相关产品推荐

