第五次作业
习题1:读入文件pmi_days.csv,完成以下操作:
1.统计质量等级对应的天数,例如:
优:5天
良:3天
中度污染:2天
2.找出PMI2.5的最大值和最小值,分别指出是哪一天。
1 import csv 2 filename='D:\Downloads\pmi_days.csv' 3 with open(filename, 'r') as f: 4 reader = csv.reader(f) 5 header_row = next(reader) 6 heads = []# 创建一个空列表用于存放每天的质量等级 7 pm=[]#创建一个空列表用于存放每天的PM2.5 8 day=[]#创建一个空列表用于存放日期 9 for row in reader: # 遍历文件对象 10 heads.append(row[2]) # 添加每行的第一列到列表里 11 pm.append(int(row[3])) 12 day.append(row[0]) 13 y=0 14 l=0 15 q=0 16 z=0 17 for i in range (30): 18 if heads[i]=="优": 19 y=y+1 20 elif heads[i]=="良": 21 l=l+1 22 elif heads[i]=='轻度污染': 23 q=q+1 24 elif heads[i]=='中度污染': 25 z=z+1 26 zuida=max(pm) 27 zuixiao=min(pm) 28 print("优{}天,良{}天,轻度污染{}天,中度污染{}天".format(y,l,q,z)) 29 for a in range(30): 30 if pm[a]==zuida: 31 print("PMI2.5的最大值是{},是{}".format(zuida,day[a])) 32 for b in range(30): 33 if pm[b]==zuixiao: 34 print("PMI2.5的最小值是{},是{}".format(zuixiao, day[b]))

习题2:读入文件1980-2018GDP.csv,完成以下操作:
1.按行输出每年GDP数据,表头列名如文件第1行所示。
import csv with open("D:\Downloads\GDP.csv" ,'r') as f: reader = csv.reader(f) #默认返回list 每行类型 for row in reader: print(row)

2.将各年GDP数据转换成字典格式,以年份为keys,其它值为values(数据类型为列表方式),例如:
{
2017:[827121.7,6.8%,60989]
........
}
1 import csv 2 list=[] 3 list1=[] 4 zidian={} 5 daxiao=[] 6 d=0 7 e=0 8 with open("D:\Downloads\GDP.csv",'r') as f: 9 reader = csv.reader(f) 10 fieldnames = next(reader) 11 print(fieldnames) 12 csv_reader = csv.DictReader(f,fieldnames=fieldnames) 13 for row in reader: 14 list.append(row) 15 for i in range(0,len(list)): 16 print("%-8s"%list[i][0],"\t%-10.7s"%list[i][1],"\t%-12.5s"%list[i][2],"\t%-13.5s"%list[i][3],list[i][4]) 17 with open("D:\Downloads\GDP.csv", 'r') as f: 18 reader = csv.reader(f) 19 fieldnames = next(reader) 20 csv_reader = csv.DictReader(f, fieldnames=fieldnames) 21 for row in csv_reader: 22 dict={} 23 for key,value in row.items(): 24 dict[key] = value 25 if key == 'GDP(亿元)': 26 daxiao.append(float(dict.get('GDP(亿元)'))) 27 dict.get('年份') 28 list1.append(int(dict.get('年份'))) 29 for i in range(0, len(list)): 30 zidian[list1[i]] = list[i][1:] 31 print(zidian) 32 for i in range(0,len(daxiao)): 33 if daxiao[i]==max(daxiao): 34 d=list1[i] 35 if daxiao[i]==min(daxiao): 36 e=list1[i] 37 print("PM2.5最大值:{} 日期:{}".format(max(daxiao), d)) 38 print("PM2.5最小值:{} 日期:{}".format(min(daxiao), e))

浙公网安备 33010602011771号