如何用Python筛选可租赁车辆:排除已出租车辆信息
解决方法
核心思路是先收集所有已出租车辆的注册号,再从车辆列表中排除这些编号对应的条目,具体实现步骤如下:
提取已出租车辆的注册号
先读取rented.txt,把每一行的第一个字段(注册号)提取出来,存入一个集合(集合的查找效率远高于列表,适合快速做存在性判断)。筛选可租赁车辆
遍历vehicles.txt的每一行,拆分出当前车辆的注册号,判断它是否不在已出租集合中,符合条件的就输出。
代码示例(Python)
# 第一步:收集已出租的注册号 rented_reg_numbers = set() with open('rented.txt', 'r', encoding='utf-8') as rented_file: for line in rented_file: # 拆分每行内容,取第一个元素作为注册号,去除前后空格 reg_number = line.strip().split(',')[0].strip() rented_reg_numbers.add(reg_number) # 第二步:筛选并输出可租赁车辆 with open('vehicles.txt', 'r', encoding='utf-8') as vehicles_file: for line in vehicles_file: current_reg = line.strip().split(',')[0].strip() if current_reg not in rented_reg_numbers: print(line.strip())
运行结果
执行后会输出:
ABC-123, Example, Manual GHI-789, Example3, Automatic
为什么临时文件方法可能无效?
你之前尝试的“写入临时文件再删除行”的思路本身没问题,但大概率是细节处理出错:比如没有正确匹配注册号(比如没去除空格、拆分字段时出错),或者写入/删除行的逻辑有漏洞。而用集合做存在性判断的方式更直接,不需要修改文件,逻辑清晰也更容易排查问题。
内容的提问来源于stack exchange,提问作者wwalzu
相关产品推荐
相关产品推荐

