Python自定义count_matches函数统计CSV匹配项始终返回0问题排查
问题原因
你的count_matches函数的核心错误是return count语句的缩进位置错误:
- 当前
return语句位于for循环的内部,循环只会执行1次就直接返回结果:如果csv第一行数据的State字段不是NY,初始值为0的count就会被直接返回,这就是你始终得到0的原因。 - 你写在函数外的逻辑没有提前终止遍历的问题,会完整遍历所有行统计匹配项,因此可以得到正确结果。
修正后的代码
将return语句调整到for循环外,等所有行遍历完成后再返回统计值即可:
def count_matches(rows, field, value): count = 0 for row in rows: if row[field] == value: count += 1 # return与for同级,移出循环体 return count
内容的提问来源于stack exchange,提问作者BigInJapan
相关产品推荐
相关产品推荐

