python之Map函数 reduce 函数
轉(zhuǎn)載:https://www.cnblogs.com/gongxr/p/7247855.html
python之Map函數(shù)# map()函數(shù)使用舉例 # 功能:map()接受一個(gè)函數(shù)f和一個(gè)或多個(gè)list,將f依次作用在list的每個(gè)元素,得到一個(gè)新的列表 # 語(yǔ)法:map(方法名,列表,[列表2]) # 注意:map()函數(shù)的返回值需要強(qiáng)制轉(zhuǎn)換成list類型,且不改變?cè)斜碇祃ist_1 = [1, 2, 3, 4, 5] list_2 = [1, 2, 3, 4, 5]# 單個(gè)參數(shù) def double_function(number):return number * 2list_result = list(map(double_function, list_1)) print("單參數(shù)map結(jié)果:", list_result)# 多個(gè)參數(shù) def multiply_function(m, n):return m * nlist_result = list(map(multiply_function, list_1, list_2)) print("多參數(shù)map結(jié)果:", list_result)
?運(yùn)行結(jié)果:
單參數(shù)map結(jié)果: [2, 4, 6, 8, 10] 多參數(shù)map結(jié)果: [1, 4, 9, 16, 25] python的reduce()函數(shù)轉(zhuǎn)載:https://www.cnblogs.com/XXCXY/p/5180245.html
reduce()函數(shù)也是Python內(nèi)置的一個(gè)高階函數(shù)。
reduce()函數(shù)接收的參數(shù)和 map()類似,一個(gè)函數(shù) f,一個(gè)list,但行為和 map()不同,reduce()傳入的函數(shù) f 必須接收兩個(gè)參數(shù),reduce()對(duì)list的每個(gè)元素反復(fù)調(diào)用函數(shù)f,并返回最終結(jié)果值。
例如,編寫一個(gè)f函數(shù),接收x和y,返回x和y的和:
| 12 | def?f(x, y):????return?x?+?y |
調(diào)用?reduce(f, [1, 3, 5, 7, 9])時(shí),reduce函數(shù)將做如下計(jì)算:
| 12345 | 先計(jì)算頭兩個(gè)元素:f(1,?3),結(jié)果為4;再把結(jié)果和第3個(gè)元素計(jì)算:f(4,?5),結(jié)果為9;再把結(jié)果和第4個(gè)元素計(jì)算:f(9,?7),結(jié)果為16;再把結(jié)果和第5個(gè)元素計(jì)算:f(16,?9),結(jié)果為25;由于沒(méi)有更多的元素了,計(jì)算結(jié)束,返回結(jié)果25。 |
上述計(jì)算實(shí)際上是對(duì) list 的所有元素求和。雖然Python內(nèi)置了求和函數(shù)sum(),但是,利用reduce()求和也很簡(jiǎn)單。
reduce()還可以接收第3個(gè)可選參數(shù),作為計(jì)算的初始值。如果把初始值設(shè)為100,計(jì)算:
| 1 | reduce(f, [1,?3,?5,?7,?9],?100) |
結(jié)果將變?yōu)?25,因?yàn)榈谝惠営?jì)算是:
計(jì)算初始值和第一個(gè)元素:f(100, 1),結(jié)果為101。
總結(jié)
以上是生活随笔為你收集整理的python之Map函数 reduce 函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【音乐拼接】WAV格式
- 下一篇: win7 + vs2015+ matla