Python高階 來談談幾個常用的內建函式

2021-10-01 15:16:54 字數 1443 閱讀 9045

匿名函式(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...