日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python高阶函数、map reduce 自己如何去定义_「python」高阶函数map、reduce的介绍

發布時間:2025/3/15 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python高阶函数、map reduce 自己如何去定义_「python」高阶函数map、reduce的介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python

map

先看官方介紹:

map(function, iterable, ...)Return an iterator that applies function to every item of iterable, yielding the results.

map函數至少使用2個參數:(函數,可迭代對象),返回的結果是個迭代器。實現的作用是將前面的函數依次在后面的可迭代對象上執行。

>>> def ljds(x):... return x+x...>>> a=[0,1,2,3,4,5,6,7,8,9]>>> b=map(ljds,a)>>> next(b)0>>> next(b)2>>> next(b)4>>> list(b)[6, 8, 10, 12, 14, 16, 18]>>>

代碼介紹:函數ljds,參數x,作用是返回一個x加上自己的值。ljds(2)結果是4,ljds('梁家大叔')結果是'梁家大叔梁家大叔'。很基礎,解釋的有點多余....

a是個列表(可迭代對象)。當執行了3次next(b)后,(b是迭代器)此時的結果只有后面7個元素了,因此list(b)只輸出了3-9的ljds(x)。

map還可以接受更多的參數,但第一位的函數只有一個,后面可以繼續跟可迭代對象:

>>> def ljds(x,y):... return (x+x,y+y)...>>> a=[1,2,3,4,5]>>> b=[11,22,33,44,55]>>> c=map(ljds,a,b)>>> list(c)[(2, 22), (4, 44), (6, 66), (8, 88), (10, 110)]>>>

這個就沒必要解釋了。

reduce

官方介紹:

functools.reduce(function, iterable[, initializer])Apply function of two arguments cumulatively to the items of sequence, from left to right, so as to reduce the sequence to a single value.

值得一提的是reduce在python2中可以直接使用,在python3中已經放在了fucntools模塊里,用之前要先導入。

reduce調用的函數需要兩個參數,依次使用可迭代對象的元素作為這個函數的參數,函數執行的結果和下一個元素再作為參數執行函數,依此類推。如果第一次執行時設置了initial,則是initial和第一個元素作為第一次執行的參數。可能容易暈,直接看代碼演示吧。

以前學過一篇課文是講數學家高斯的,他小時候做數學題,1+2+3……一直加到100,結果是多少,這題用reduce操作應該是這樣的:

>>> from functools import reduce>>> def ljds(x,y):... return x+y...>>> a=[x for x in range(101)]>>> reduce(ljds,a)5050>>>

代碼解釋:

導入reduce,創建一個函數ljds,需要2個參數x,y,返回x+y的結果。

a列表是數字從0到100,那么reduce執行的結果就是:

第一次:因沒設置initial,所以ljds的參數就是列表a的最前面的2個元素,即0和1,相加結果是1。

第二次:第一次的結果1作為參數,第3個元素2也作為參數,即ljds(1,2),結果是3.

第三次:ljds(3,3)

……

一直到結束。

總結

以上是生活随笔為你收集整理的python高阶函数、map reduce 自己如何去定义_「python」高阶函数map、reduce的介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。