如何实现输入列表与异常列表的匹配项替换为空格?
问题解决方法
你的代码核心问题是判断逻辑错误——你硬编码了固定字符串'exeption'作为匹配条件,而非对比异常列表c中的实际内容。以下是修正后的可行方案:
方案1:修改原有循环逻辑
直接调整判断条件,同时将异常列表转为集合提升查找效率(数据量大时优势更明显):
with open('input.txt') as f: a = f.read().splitlines() with open('exeptions.txt') as f: c = f.read().splitlines() # 转集合优化查找速度 exception_set = set(c) if exception_set: for i in range(len(a)): if a[i] in exception_set: a[i] = ' ' # 验证结果 print(a)
方案2:用列表推导式简化代码
如果不想用索引循环,列表推导式能更简洁地完成替换:
with open('input.txt') as f: a = f.read().splitlines() with open('exeptions.txt') as f: exception_set = set(f.read().splitlines()) # 一行完成替换逻辑 a = [' ' if item in exception_set else item for item in a] # 验证结果 print(a)
测试验证
针对你给出的示例文件:
input.txt每行一个元素:a bexeptions.txt内容:b
运行代码后,输出结果为['a', ' '],完全符合预期。
内容的提问来源于stack exchange,提问作者wadwewe
相关产品推荐
相关产品推荐

