You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

查询CSV文件中年龄>30的记录重复显示,如何解决?

解决CSV记录重复显示并筛选年龄大于30的问题

原代码的问题

  • 完全没有实现年龄大于30的筛选逻辑
  • 每次读取一行就存入rec列表,接着内层循环遍历range(1, len(rec))打印索引,导致每新增一行就重复打印之前所有行的索引,直接造成重复输出

修正后的代码

import csv

def dispcond():
    # 用with语句自动管理文件,无需手动关闭
    with open('csv2.csv', 'r') as f:
        empdata = csv.reader(f)
        # 跳过CSV表头(如果你的文件没有表头,删除这行即可)
        next(empdata)
        for row in empdata:
            # 假设年龄在第二列(索引为1),请根据你的CSV实际结构调整索引
            try:
                age = int(row[1])
                if age > 30:
                    print(row)
            except ValueError:
                # 处理年龄字段不是数字的异常情况
                print(f"无效年龄记录:{row}")

dispcond()

关键改进说明

  • 直接遍历CSV读取器的每一行,无需先存入列表再二次遍历,从根源避免重复输出
  • 加入了年龄转换与筛选逻辑,只输出年龄大于30的记录
  • 使用with语句管理文件,自动处理文件关闭,代码更安全简洁
  • 增加异常处理,避免因年龄字段非数字导致程序崩溃

内容的提问来源于stack exchange,提问作者Mayank Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 13:40:54