Python 3.x中reduce()函數完整用法

2021-02-19 Python小屋

在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種方法

相關焦點

  • 在Python中使用Reduce函數
    讓我們分別將prod函數和num_list作為函數和可迭代對象代入reduce中:from functools import reduceproduct = reduce(prod, num_list)我們的迭代對象是 num_list,它是list: [1,2,3,4,5]。
  • Python入門基礎之map()、reduce()函數使用
    本文環境都是基於python3.X的,畢竟要學會擁抱未來,擁抱新的知識。Python3 現在已經發展的差不多了。1、 map()函數map()是 python 內置的高階函數,它接收一個函數 f 和一個 list,並通過把函數 f 依次作用在 list 的每個元素上,得到一個新的object並返回。
  • 一文讀懂python的map、reduce函數
    這對兄弟是出現頻率極高且相當實用的python函數,初學者會較難理解,看完本文你就能搞定它們嘍!比方說:items = [1, 2, 3, 4, 5] squared = []for i in items: squared.append(i**2)map函數可以讓我們用一種簡單而漂亮得多的方式來實現:items = [1, 2, 3, 4, 5]squared
  • reduce()函數和filter()函數閃亮登場
    reduce()函數是用function先對sequence中的第1、2個元素進行操作,得到的結果與第3個元素再作為兩個參數用function進行運算,以此類推,最終得到一個結果。  在Python3中,如果想要使用reduce()函數,需要通過引入functools模塊來調用。
  • python之lambda函數使用
    三,lambda結合python內置函數高階用法lambda常用高階函數:map()函數reduce() 函數sorted() 函數filter() 函數map()函數:map() 會根據提供的括號內函數對給出的序列做一一映射。
  • 詳解Python函數式編程之map、reduce、filter
    不過,在Python 3.x中,reduce()不是內置函數,而是放到了標準庫functools中,需要先導入再使用。(1)map()。內置函數map()可以將一個函數依次映射到序列或迭代器對象的每個元素上,並返回一個可迭代的map對象作為結果,map對象中每個元素是原序列中元素經過該函數處理後的結果,該函數不對原序列或迭代器對象做任何修改。
  • Python基礎應用:map與reduce
    從運行效率的角度講,map()等其他python內置函數是效率最高的,其次是列表解析,再次是生成器和for循環,while循環最慢。以下是map()和reduce()的使用方法和例子:In [1]:# map() 最常見的用法是對列表做映射l = [ i for i in range(9)]print('l: ', l)print('\n')# 將匿名函數作為參數傳遞給map()函數# 匿名函數相關內容詳見
  • python高階函數:map、filter、reduce的替代品
    什麼是高階函數?高階函數是一種將函數作為參數,或者把函數作為結果返回的函數,map函數、sorted函數就是高階函數的典型例子。map函數在小編以前的文章中做過相應的知識分享。sorted函數是python的內置函數,它的可選參數key用於提供一個函數,它可以將函數應用到各個元素上進行排序。
  • python中int函數的其他用法
    泰山版初中信息技術第1冊python編程中出現了int函數,教材中int函數的作用是把輸入的字符型數字轉變成整數,其實int函數還有其他的用法
  • Python 3.x中內置函數range()函數的用法
    range()是Python開發中非常常用的一個內置函數,語法格式為range([start,] end [, step] ),有range(stop
  • Python 進階之術 Map Filter Reduce
    這是它的規範:規範map(function_to_apply, list_of_inputs)⼤多數時候,我們要把列表中所有元素⼀個個地傳遞給⼀個函數,並收集輸出。就是這樣:items = [1, 2, 3, 4, 5]squared = list(map(lambda x: x**2, items))⼤多數時候,我們使⽤匿名函數(lambdas)來配合 map不僅⽤於⼀列表的輸⼊, 我們甚⾄可以⽤於⼀列表的函數
  • python高階函數學習, map、reduce
    注意,返回的是生成器Iterator,所以取返回值的時候需要用for,或者next,或者通過list序列化之後才能取出來舉例:def f(x): return x * x #定義一個函數f(x),返回值是兩個數的乘積r = map(f, [1, 2, 3, 4, 5, 6]) #通過map函數讓f(x)作用於後面序列的每一個元素
  • Python sorted函數及用法
    下面程序演示了 sorted() 函數的基本用法:a = [5,3,4,2,1]print(sorted(a))a = (5,4,3,1,2)print(sorted(a))a = {4:1,\ 5:2,\ 3:3,\ 2:6,\ 1:8}print(sorted(a.items
  • python教程:3個非常有用的內置函數
    *版本中是直接返回list的,但在python3.*中是返回一個迭代器 2、map 語法:map(function,*iterable) 解釋:把迭代器(或多個迭代器)通過function函數得到結果 用法:可以設置一個或多個迭代器,然後把相同位置(如果為多個迭代器)的元素通過function函數得到最終結果
  • 「python」高階函數map、reduce的介紹
    map函數至少使用2個參數:(函數,可迭代對象),返回的結果是個迭代器。實現的作用是將前面的函數依次在後面的可迭代對象上執行。>>> def ljds(x):... return x+x...
  • 一文看懂Python列表表達式及高階函數如lamda, zip, enumerate, map和filter方法.
    map方法可以接收函數作為參數,並將其映射於列表的多個元素。python 2中返回列表,python 3中返回迭代器,需要使用list方法再生成列表。map函數不僅支持自定義的函數和lambda函數,還支持python自帶的函數。下面是map函數應用一個最簡單的例子。該例子將計算平方的lambda函數映射於列表中的每個元素。
  • Python zip函數及用法
    所謂「壓縮」,其實就是將這些序列中對應位置的元素重新組合,生成一個個新的元組。和 Python 3.x 版本不同,Python 2.x 版本中的 zip() 函數會直接返回列表,而不是返回 zip 對象。但是,返回的列表或者 zip 對象,其包含的元素(都是元組)是相同的。zip() 函數的語法格式為:zip(iterable, ...)
  • Python 2.x 與 Python 3.x 的區別
    floor 操作,在 python 2.x 和 python 3.x 中是一致的。在 2.x 時代,異常在代碼中除了表示程序錯誤,還經常做一些普通控制結構應該做的事情,在 3.x 中可以看出,設計者讓異常變的更加專一,只有在錯誤發生的情況才能去用異常捕獲語句來處理。5 xrange在 Python 2 中 xrange() 創建迭代對象的用法是非常流行的。比如: for 循環或者是列表/集合/字典推導式。這個表現十分像生成器(比如。"
  • 【Python基礎】Python 函數使用總結
    6 偏函數偏函數固定函數的某些參數後,重新生成一個新的函數。通常用法,當函數的參數個數太多,需要簡化時,使用partial創建一個新的函數。mapmap 函數第一個參數為函數,它作用於列表中每個的元素。
  • 5分鐘掌握Python | Map、Reduce和Filter如何運用?
    我們想要獲得完整的內容也很容易,我們只需要將它轉化成list類型即可:>>> print(list(map(dis, points)))[1.0, 4.47213595499958, 3.605551275463989]以上過程還可以進一步簡化,還記得匿名函數嗎?