最近在做數(shù)據(jù)分析的練習(xí)時,對一段python代碼中的for循環(huán)不是很理解,代碼如下:print('修正數(shù)據(jù)類型(數(shù)據(jù)清理)')importunicodecsvfromdatetimeimportdatetimeasdtdefread_csv(filename):withopen(filename,'rb')asf:reader=unicodecsv.DictReader(f)returnlist(reader)defparse_date(date):#將字符串的date轉(zhuǎn)換成python的日期時間對象ifdate=='':#檢查日期是否為空字符串returnNoneelse:returndt.strptime(date,'%Y-%m-%d')#將字符串解析成日期daily_engagement=read_csv('daily-engagement.csv')print(daily_engagement[0])#清理engagement的數(shù)據(jù)類型forengagement_recordindaily_engagement:engagement_record['utc_date']=parse_date(engagement_record['utc_date'])print('\n每日參與學(xué)生數(shù)據(jù):')print(daily_engagement[0])結(jié)果輸出如下:修正數(shù)據(jù)類型(數(shù)據(jù)清理)OrderedDict([('acct','0'),('utc_date','2015-01-09'),('num_courses_visited','1.0'),('total_minutes_visited','11.6793745'),('lessons_completed','0.0'),('projects_completed','0.0')])每日參與學(xué)生數(shù)據(jù):OrderedDict([('acct','0'),('utc_date',datetime.datetime(2015,1,9,0,0)),('num_courses_visited','1.0'),('total_minutes_visited','11.6793745'),('lessons_completed','0.0'),('projects_completed','0.0')])在讀取了daily-engagement.csv文件后,打印變量daily_engagement[0]時,('utc_date','2015-01-09')中的日期還只是字符串我的問題是,在對變量daily_engagement進行遍歷后,為什么在打印同樣的daily_engagement時,里面的utc_date就變成了datetime.datetime(2015,1,9,0,0)?我在看這個for循環(huán)的時候只看出了對變量engagement_record作了修改,看不出有對daily_engagement作賦值之類的操作,但卻能夠打印修改后的結(jié)果請大神指教個中原理,謝謝!
關(guān)于python中for循環(huán)的問題?
翻翻過去那場雪
2019-05-22 23:06:04