亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于python中for循環的問題?

關于python中for循環的問題?

杰噠噠 2018-02-20 19:50:53
最近在做數據分析的練習時,對一段python代碼中的for循環不是很理解,代碼如下:print('修正數據類型(數據清理)') import?unicodecsv from?datetime?import?datetime?as?dt def?read_csv(filename): ????with?open(filename,?'rb')?as?f:?? ????????reader?=?unicodecsv.DictReader(f) ????????return?list(reader)????? def?parse_date(date):?????#將字符串的date轉換成python的日期時間對象 ????if?date?==?'':????????#檢查日期是否為空字符串 ????????return?None ????else: ????????return?dt.strptime(date,?'%Y-%m-%d')?#將字符串解析成日期 daily_engagement?=?read_csv('daily-engagement.csv') print(daily_engagement[0]) #?清理?engagement?的數據類型 for?engagement_record?in?daily_engagement: ????engagement_record['utc_date']?=?parse_date(engagement_record['utc_date']) print('\n每日參與學生數據:') print(daily_engagement[0])結果輸出如下:修正數據類型(數據清理)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')])每日參與學生數據: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循環的時候只看出了對變量engagement_record作了修改,看不出有對daily_engagement作賦值之類的操作,但卻能夠打印修改后的結果請大神指教個中原理,謝謝!
查看完整描述

1 回答

已采納
?
慕函數9285021

TA貢獻27條經驗 獲得超6個贊

可以理解為 engagement_record 是對 daily_engagement 的引用,所以會直接改變原始對象

查看完整回答
反對 回復 2018-02-22
  • 1 回答
  • 0 關注
  • 1299 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號