return語句用於退出函數,向調用方返回一個表達式。 return在不帶參數的情況下(或者沒有寫return語句),預設返回None。 None是一個特殊的值,它的數據類型是NoneType。NoneType是Python的特殊類型,它只有一個取值None。 它不支持任何運算也沒有任何內建方法,和 ...
匿名函數(lambda表達式)
在Python中,函數可以算的上是“一等公民”了,我們先回顧下函數的優點:
- 減少代碼重覆量
- 模塊化代碼
但是我們有沒有想過,如果我們需要一個函數,比較簡短,而且只需要使用一次(無需重覆調用),那還需要定義一個有名字的函數麽?
答案是否定的,這裡我們就可以使用匿名函數來實現這樣的功能。
我們先看看求一個數的平方,我們定義個函數怎麼寫:
def square(x):
return x**2
square(3)
而lambda表達式就可以這樣寫:
square = lambda x: x**2
square(3)
根據上面的例子,其實lambda表達式使用還是很簡單的,如下:
lambda argument1, argument2,.....: expression
接下來,介紹的map、filter和reduce函數,與lambda表達式結合使用,才能發揮其強大的作用了。
map函數
map函數的使用如下:
map(function, iterable)
其作用是,對iterable的每個元素,都運用function這個函數,最後返回新的可遍歷的集合。
a = [1,2,3,4,5]
b = map(lambda x: x*2,a)
print(list(b))
# [2, 4, 6, 8, 10]
filter函數
filter函數的使用如下:
filter(function, iterable)
其作用是,對iterable的每個元素,都運用function這個函數進行判斷,最後返回全部為True的新的可遍歷的集合。
'''
學習中遇到問題沒人解答?小編創建了一個Python學習交流群:857662006
尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書!
'''
a = [1,2,3,4,5,6]
b = filter(lambda x :x%2 ==0, a)
print(list(b))
# [2, 4, 6]
reduce函數
reduce函數的使用如下:
reduce(function, iterable)
function規定有兩個參數,表示對iterable每個元素和上一次運算的結果,進行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
總結
- lambda表達式
- map、filter和reduce函數