国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

簡(jiǎn)單了解Python中的幾種函數(shù)

2020-01-04 16:27:57
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

幾個(gè)特殊的函數(shù)(待補(bǔ)充)

python/272958.html">python/268158.html">python/286131.html">python是支持多種范型的語(yǔ)言,可以進(jìn)行所謂函數(shù)式編程,其突出體現(xiàn)在有這么幾個(gè)函數(shù): filter、map、reduce、lambda、yield

lambda

>>> g = lambda x,y:x+y #x+y,并返回結(jié)果>>> g(3,4)7>>> (lambda x:x**2)(4) #返回4的平方16

lambda函數(shù)的使用方法:

在lambda后面直接跟變量

變量后面是冒號(hào)

冒號(hào)后面是表達(dá)式,表達(dá)式計(jì)算結(jié)果就是本函數(shù)的返回值

冒號(hào)后面是表達(dá)式,表達(dá)式計(jì)算結(jié)果就是本函數(shù)的返回值

比如,要打印一個(gè)list,里面依次是某個(gè)數(shù)字的1次方,二次方,三次方,四次方。用lambda可以這樣做:

>>> lamb = [ lambda x:x,lambda x:x**2,lambda x:x**3,lambda x:x**4 ]>>> for i in lamb:...   print i(3),... 3 9 27 81

map

map()是python的一個(gè)內(nèi)置函數(shù),它的基本樣式是:

map(func,seq)

func是一個(gè)函數(shù),seq是一個(gè)序列對(duì)象。在執(zhí)行的時(shí)候,序列對(duì)象中的每個(gè)元素,按照從左到右的順序,依次被取出來(lái),并放入

到func那個(gè)函數(shù)里面,并將func的返回值依次存到一個(gè)list中。如

>>> items = [1,2,3,4,5]>>> squared = []>>> for i in items:...   squared.append(i**2)... >>> squared[1, 4, 9, 16, 25]>>> def sqr(x): return x**2... >>> map(sqr,items)[1, 4, 9, 16, 25]>>> map(lambda x: x**2, items)[1, 4, 9, 16, 25]>>> [ x**2 for x in items ]   #這個(gè)我最喜歡了,一般情況下速度足夠快,而且可讀性強(qiáng)[1, 4, 9, 16, 25]

要點(diǎn):

對(duì)iterable中的每個(gè)元素,依次應(yīng)用function的方法(本質(zhì)上就是一個(gè)for循環(huán))

將所有結(jié)果返回一個(gè)list

如果參數(shù)很多,則對(duì)那些參數(shù)并行執(zhí)行function

繼續(xù)下面兩個(gè)例子:

>>> lst1 = [1,2,3,4,5]>>> lst2 = [6,7,8,9,0]>>> map(lambda x,y: x+y, lst1,lst2)   #將兩個(gè)列表中的對(duì)應(yīng)項(xiàng)加起來(lái),并返回一個(gè)結(jié)果列表[7, 9, 11, 13, 5]
>>> lst1 = [1,2,3,4,5]>>> lst2 = [6,7,8,9,0]>>> lst3 = [7,8,9,2,1]>>> map(lambda x,y,z: x+y+z, lst1,lst2,lst3)[14, 17, 20, 15, 6]

可以看到map函數(shù)的強(qiáng)大和簡(jiǎn)潔。如果使用for循環(huán)將會(huì)很繁瑣

reduce

直接看例子:

>>> reduce(lambda x,y: x+y,[1,2,3,4,5])15

reduce函數(shù)的計(jì)算方式是將列表中的元素累加,((((1+2)+3)+4)+5)=15 與map函數(shù)相比較就可以看出兩者之間的區(qū)別。map是上下運(yùn)算,reduce是橫著逐個(gè)元素進(jìn)行運(yùn)算。

reduce含可以接受第三個(gè)值作為初始值:例如

>>> reduce(lambda x,y: x+y,[1,2,3,4,5],100)115

上述列表中計(jì)算將以100為初始值執(zhí)行累加計(jì)算,先計(jì)算 100+1

filter

filter的中文含義是“過(guò)濾器”,在python中,它就是起到了過(guò)濾器的作用.

通過(guò)下面代碼體會(huì):

>>> numbers = range(-5,5)>>> numbers[-5, -4, -3, -2, -1, 0, 1, 2, 3, 4]>>> filter(lambda x: x>0, numbers) [1, 2, 3, 4]>>> [x for x in numbers if x>0]   #與上面那句等效[1, 2, 3, 4]>>> filter(lambda x: x > 3, [1,2,3,4,5]) [4,5]

拜讀下filter的官方文檔解釋?zhuān)?/p>

filter(...)  filter(function or None, sequence) -> list, tuple, or string    Return those items of sequence for which function(item) is true. If  function is None, return the items that are true. If sequence is a tuple  or string, return the same type, else return a list.

總結(jié)

以上就是本文關(guān)于簡(jiǎn)單了解Python中的幾種函數(shù)的全部?jī)?nèi)容,希望對(duì)大家有所幫助。有什么問(wèn)題可以隨時(shí)留言,小編會(huì)及時(shí)回復(fù)大家的。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到python教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 竹山县| 迭部县| 吴忠市| 北海市| 沛县| 红安县| 康马县| 施甸县| 武宣县| 罗田县| 托克逊县| 佛坪县| 九龙坡区| 扎赉特旗| 彰武县| 定南县| 揭西县| 罗江县| 绥中县| 芷江| 德令哈市| 额尔古纳市| 罗平县| 德庆县| 白水县| 天门市| 青州市| 舟山市| 上高县| 卓尼县| 卢氏县| 治多县| 新干县| 南雄市| 西贡区| 江永县| 唐河县| 阳曲县| 屯留县| 隆林| 鄢陵县|