Python解析TXT文件时如何实现相同ID仅输出一次?
实现方案
核心思路
- 用集合记录已输出过的ID,利用集合元素去重特性快速判断ID是否为首次出现
- 仅首次遇到ID时写入ID行,后续相同ID的行仅写入Name字段
- 所有行的Name字段都会正常输出,不会遗漏
修改后代码
# 初始化集合存储已输出的ID seen_ids = set() for line in contents: line_fields = line.strip().split() current_id = line_fields[0] # 首次出现该ID时写入ID行 if current_id not in seen_ids: f2.write("ID: " + current_id + '\n') seen_ids.add(current_id) # 每次都写入当前行的Name f2.write(line_fields[1] + '\n')
可选场景适配
如果你的原始文件中相同ID的行是连续分组的,且仅需要合并连续的相同ID,可以用以下更轻量的实现,不需要维护全量ID集合:
# 存储上一行的ID,初始设为不可能出现的值 last_id = None for line in contents: line_fields = line.strip().split() current_id = line_fields[0] if current_id != last_id: f2.write("ID: " + current_id + '\n') last_id = current_id f2.write(line_fields[1] + '\n')
内容的提问来源于stack exchange,提问作者poiqwlf
相关产品推荐
相关产品推荐

