在Python中,函數(shù)可以算的上是“一等公民”了,我們先回顧下函數(shù)的優(yōu)點:
成都創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務華池,十年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:028-86922220
但是我們有沒有想過,如果我們需要一個函數(shù),比較簡短,而且只需要使用一次(無需重復調(diào)用),那還需要定義一個有名字的函數(shù)么?
答案是否定的,這里我們就可以使用匿名函數(shù)來實現(xiàn)這樣的功能。
我們先看看求一個數(shù)的平方,我們定義個函數(shù)怎么寫:
def square(x):
return x**2
square(3)
而lambda表達式就可以這樣寫:
square = lambda x: x**2
square(3)
根據(jù)上面的例子,其實lambda表達式使用還是很簡單的,如下:
lambda argument1, argument2,.....: expression
接下來,介紹的map、filter和reduce函數(shù),與lambda表達式結(jié)合使用,才能發(fā)揮其強大的作用了。
map函數(shù)的使用如下:
map(function, iterable)
其作用是,對iterable的每個元素,都運用function這個函數(shù),最后返回新的可遍歷的集合。
a = [1,2,3,4,5]
b = map(lambda x: x*2,a)
print(list(b))
# [2, 4, 6, 8, 10]
filter函數(shù)的使用如下:
filter(function, iterable)
其作用是,對iterable的每個元素,都運用function這個函數(shù)進行判斷,最后返回全部為True的新的可遍歷的集合。
'''
學習中遇到問題沒人解答?小編創(chuàng)建了一個Python學習交流群:
尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書!
'''
a = [1,2,3,4,5,6]
b = filter(lambda x :x%2 ==0, a)
print(list(b))
# [2, 4, 6]
reduce函數(shù)的使用如下:
reduce(function, iterable)
function規(guī)定有兩個參數(shù),表示對iterable每個元素和上一次運算的結(jié)果,進行function運算,最后得到一個值,這里要注意,我們需要從functools中導入reduce。
from functools import reduce
a = [1,2,3,4]
b = reduce(lambda x,y: x*y,a)
print(b)
# 24 1*2*3*4