在Python 3.x中,reduce()不再是內置函數,而是移到了標準庫functools中,需要先導入再使用,其官方解釋如圖所示:
從官方文檔可知,該函數用法要點如下:
1)把一個雙參數函數以累積的方式從左向右依次作用到序列中的元素上,最終得到單個值。例如,reduce(lambda x, y: x+y, [1, 2, 3, 4, 5])計算過程為((((1+2)+3)+4)+5)。在函數function的兩個參數中,左邊的參數x是被累積的值,而右邊的參數y是依次從序列中獲取的值。這也是最常見的用法,在拙作《Python可以這樣學》和《Python程序設計開發寶典》中都使用了下圖進行了演示,配套PPT有這樣一頁:
2)提供可選參數initializer時,如果序列非空則將其放置到序列元素之前參與計算,如果序列為空則作為默認值直接返回。
3)如果沒有提供可選參數initializer,並且序列中只包含一個元素,則直接返回序列中的第一個元素。
完整用法演示:
喜大普奔
1、董付國老師Python系列教材,亞馬遜、京東、噹噹、天貓均有銷售:
1)《Python程序設計(第2版)》(2018年5月第6次印刷)
出版社官方連結(亞馬遜、京東、噹噹均有銷售):https://detail.tmall.com/item.htm?spm=a1z10.3-b-s.w4011-16232114860.18.24a52226hIi8Bj&id=534581929248&rn=9311dcbc68fffcf57b7ae352800e485d&abbucket=6
2)《Python可以這樣學》(2018年2月第5次印刷)(本書已發行繁體版)
出版社官方連結(亞馬遜、京東、噹噹均有銷售):https://detail.tmall.com/item.htm?spm=a1z10.3-b-s.w4011-16232114860.16.24a52226hIi8Bj&id=544817105410&rn=9311dcbc68fffcf57b7ae352800e485d&abbucket=6
3)《Python程序設計開發寶典》(2018年2月第3次印刷)
出版社官方連結(亞馬遜、京東、噹噹均有銷售):https://detail.tmall.com/item.htm?spm=a1z10.3-b-s.w4011-16232114860.52.24a52226hIi8Bj&id=556093887133&rn=9311dcbc68fffcf57b7ae352800e485d&abbucket=6
4)《中學生可以這樣學Python》2018年5月第2次印刷)
出版社官方連結(亞馬遜、京東、噹噹均有銷售):https://detail.tmall.com/item.htm?spm=a1z10.3-b-s.w4011-16232114860.20.24a52226hIi8Bj&id=560808221053&rn=9311dcbc68fffcf57b7ae352800e485d&abbucket=6
5)《Python程序設計基礎(第2版)》(2018年5月第2次印刷)
出版社官方連結(亞馬遜、京東、噹噹均有銷售):https://detail.tmall.com/item.htm?spm=a1z10.3-b-s.w4011-16232114860.24.24a52226hIi8Bj&id=565581275846&rn=9311dcbc68fffcf57b7ae352800e485d&abbucket=6
6)《玩轉Python輕鬆過二級》(2018年5月隆重上架)
出版社官方連結(亞馬遜、京東、噹噹均有銷售):https://detail.tmall.com/item.htm?spm=a1z10.3-b-s.w4011-16232114860.84.24a52226hIi8Bj&id=569250004069&rn=9311dcbc68fffcf57b7ae352800e485d&abbucket=6
董付國老師6本Python系列圖書閱讀指南
董付國老師6本Python系列教材被北大、復旦等近百所高校選作教材
熱烈慶祝《Python可以這樣學》在臺灣發行繁體版
2、董老師120課免費視頻地址: https://pan.baidu.com/s/1jJeAs8Q 密碼: px59
相關閱讀
教學課件
1900頁Python系列PPT分享一:基礎知識(106頁)
1900頁Python系列PPT分享二:Python序列(列表、元組、字典、集合)(154頁)
1900頁Python系列PPT分享三:選擇與循環結構語法及案例(96頁)
1900頁Python系列PPT分享四:字符串與正則表達式(109頁)
1900頁Python系列PPT分享五:函數設計與應用(134頁)
1900頁Python系列PPT分享六:面向對象程序設計(86頁)
1900頁Python系列PPT分享七:文件操作(132頁)
1900頁Python系列PPT分享八:異常處理結構與程序調試、測試(70頁)
報告PPT(163頁):基於Python語言的課程群建設探討與實踐
非計算機專業《Python程序設計基礎》教學參考大綱
計算機相關專業「Python程序設計」教學大綱(參考)
系列題庫分享
1000道Python題庫系列分享一(17道)
1000道Python題庫系列分享二(48道)
1000道Python題庫系列分享三(30道)
1000道Python題庫系列分享四(40道)
1000道Python題庫系列分享五(40道)
1000道Python題庫系列分享六(40道)
1000道Python題庫系列分享七(30道)
1000道Python題庫系列分享八(29道)
1000道Python題庫系列分享九(31道)
1000道Python題庫系列分享十(37道)
1000道Python題庫系列分享十一(9道)
相關閱讀
Python語言編程規範與優化建議
詳解Python的max、min和sum函數用法
詳解Python函數式編程之map、reduce、filter
Python版猜數遊戲
Python中的依賴注入實現原理
Python中lambda表達式的常見用法
Python函數嵌套定義的洪荒之力
Python內置函數eval()用法及其安全問題
Python自定義類支持with關鍵字
Python裡的++和--不是運算符
Python代碼優化之in關鍵字
Python提取任意長度整數的每位數字
Python常用運算符含義與用法演示
Python序列循環移位的3種方法