Python读取CSV筛选降雨量数据转为列表并求取最大值的实现问题
实现方法
你只需要新增一个空列表存储符合条件的降雨量值,不需要直接打印结果,遍历完成后调用max()函数即可得到最大值,修改后的代码如下:
# 初始化空列表存储符合条件的降雨量 rainfall_list = [] first_line = True for row in open("climate_data_2017.csv"): if first_line: first_line = False else: values = row.split(",") max_temp = float(values[2]) # 降雨量转成浮点型,避免存为字符串无法正确计算最大值 rainfall = float(values[3]) if max_temp > 35: # 追加到列表而非直接打印 rainfall_list.append(rainfall) # 输出转换完成的列表 print(rainfall_list) # 计算并输出列表最大值 max_rainfall = max(rainfall_list) print(max_rainfall)
注意事项
- 你原来的代码中
rainfall没有做类型转换,直接读取的是字符串格式,存入列表前必须转成float类型,否则max()函数会按照字符串规则比较大小,得到错误结果 - 如果存在没有符合最高温超过35度的记录的情况,直接调用
max()会触发报错,可以加一层判断避免崩溃:
if rainfall_list: print(max(rainfall_list)) else: print("无满足最高温超过35度的记录")
内容的提问来源于stack exchange,提问作者Mathhurtsmybrain
相关产品推荐
相关产品推荐

