第五次作业 何雅
習題1:讀入文件pmi_days.csv,完成以下操作:
1.統計質量等級對應的天數,例如:
優:5天
良:3天
中度污染:2天
2.找出PMI2.5的最大值和最小值,分別指出是哪一天。
import csv
y=0;l=0;z=0;q=0;b=0;d=0
t=[]
day=[]
pm=[]
filename = 'pmi_days.csv'
with open(filename) as f: reader = csv.reader(f) # 創建cvs文件讀取器fieldnames = next(reader) #獲取數據的第一列,作為后續要轉為字典的鍵名 生成器,next方法獲取 csv_reader = csv.DictReader(f,fieldnames=fieldnames) #self._fieldnames = fieldnames # list of keys for the dict 以list的形式存放鍵名 for row in csv_reader:dict = {}#創建空字典,初始化字典 for key,value in row.items():#items() 以列表返回可遍歷的(鍵, 值) 元組數組dict[key]=value #往字典里添加鍵的值 if(dict["質量等級"]=="優"):y+=1elif(dict["質量等級"]=="良"):l+=1elif(dict["質量等級"]=="中度污染"):z+=1 elif(dict["質量等級"]=="輕度污染"):q+=1t.append(list(dict.values()))pm.append(int(dict.get("PM2.5")))day.append(dict.get("日期"))for i in range(0,len(pm)):if pm[i]==max(pm):zd=day[i]if pm[i]==min(pm):zx=day[i]# min(dict, key=dict.get) # max(dict, key=dict.get)print("優:{}天\n良:{}天\n中度污染:{}天\n輕度污染:{}天\n".format(y,l,z,q))print("PMI2.5的最大值:{}\n日期:{}\nPMI2.5的最小值:{}\n日期:{} ".format(max(pm),zd,min(pm),zx ))
習題2:讀入文件1980-2018GDP.csv,完成以下操作: 1.按行輸出每年GDP數據,表頭列名如文件第1行所示。
import csv
filename = '1980-2018GDP.csv'
with open(filename) as f: reader = csv.reader(f) # 創建cvs文件讀取器#獲取每行的數據for row in reader:print(row) # 打印每一行
2.將各年GDP數據轉換成字典格式,以年份為keys,其它值為values(數據類型為列表方式),例如: { 2017:[827121.7,6.8%,60989] ........ }
3.遍歷字典數據,求出GDP的最小值與最大值,并輸出數據與對應的年份。
import csv
list=[]
year=[]
gdp=[]
s={}
with open("1980-2018GDP.csv", 'r') as f:reader = csv.reader(f)fieldnames = next(reader)print(fieldnames)for row in reader:list.append(row)for i in range(0,len(list)):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])
with open("1980-2018GDP.csv", 'r') as f:reader = csv.reader(f)fieldnames = next(reader)csv_reader = csv.DictReader(f, fieldnames=fieldnames)for w in csv_reader:dict = {}for key, value in w.items():dict[key] = valueif key=='GDP(億元)':gdp.append(float(dict.get('GDP(億元)')))dict.get('年份')year.append(int(dict.get('年份')))for i in range(0,len(list)):s[year[i]]=list[i][1:]print(s)for i in range(0,len(gdp)):if gdp[i]==max(gdp):d=list1[i]if gdp[i]==min(gdp):e=list1[i]print("PM2.5最大值:{} 日期:{}".format(max(gdp), d))print("PM2.5最小值:{} 日期:{}".format(min(gdp), e))
?
轉載于:https://www.cnblogs.com/hyy0223/p/10920587.html
總結
- 上一篇: python-字符串数据类型内置方法
- 下一篇: 第16届信息安全与对抗技术竞赛-Misc