匿名函式(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的新的可遍歷的集合。
a = [1,2,3,4,5,6]
b = filter(lambda x :x%2 ==0, a)
print(list(b))
# [2, 4, 6]
educe函式
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
總結 awk的幾個常用高階用法
用awk比較多,以下幾個是常用的稍微高階一點的用法 1 同時指定多個分割符 這時應該把分隔符寫成放到方括號中,如 awk f t test 此時指定了空格,號,tab三個作為分隔符 2 awk的key的 用法 awk end test 用 1 t 2組成一維陣列的key,這樣可以用這種方式來處理很多...
awk的幾個常用高階用法
1 同時指定多個分割符 這時應該把分隔符寫成放到方括號中,如 awk f t test 此時指定了空格,號,tab三個作為分隔符 2 awk的key的 用法 awk end test 用 1 t 2組成一維陣列的key,這樣可以用這種方式來處理很多複雜的二維資料邏輯 3 awk 的範圍模板 範圍模板...
Python的幾個高階程式設計技巧
python有一些技巧對你來說是新知識,但是還有一些技巧會讓你的 效率大幅提公升。a 1,2,3 x x for x in a if x 1 4,9 a 1,2,3 s stype s seta 1,2,3 list range 10 0,1,2,3,4,5,6,7,8,9 list range 3...