1. 程式人生 > >十一:重要的內置函數

十一:重要的內置函數

格式 col lte str 就是 style 元素 -c too

一:filter 函數(過濾器函數):通常用於過濾的功能,需要加入過濾的條件,過濾的對象為一個可叠代對象的每一個元素,返回一個filter 對象,通過強轉換才可以顯示內容。

example1:

 1 # filter  過濾器函數
 2 
 3 str = [a,b,c,d]
 4 
 5 def func(s):   # s 為每一個可叠代對象的元素
 6         if s != a:   # filter 只能過濾,有過濾條件
 7             return s
 8 
 9 ret = filter(func,str)   
10 print(ret)                #
<filter object at 0x037A55B0> 11 print(list(ret)) # [‘b‘, ‘c‘, ‘d‘]

二:map 函數:參數為一個可叠代對象的每一個元素,是對每一個元素執行相同的操作(通過函數實現具體的操作),返回一個map 對象,同樣可以用強制轉換來顯示內容。

example 2:

 1 # map 函數
 2 
 3 str = [a,b,c,d]
 4 
 5 def func(s):
 6     return s + zhang   # 無過濾條件,filter不起作用
 7 
 8 ret = filter(func,str)
9 print(list(ret)) # str==[‘a‘, ‘b‘, ‘c‘, ‘d‘],沒有任何改變 10 ret = map(func,str) 11 print(ret) # <map object at 0x03A15CB0> 12 print(list(ret)) # [‘azhang‘, ‘bzhang‘, ‘czhang‘, ‘dzhang‘]

三:reduce 函數:參數為一個可叠代對象的每一個元素,是對每一個元素執行叠代操作(通過函數實現具體的操作),返回一個具體的值而不是對象。

example 3:

1 # reduce 函數
2 
3 from functools import reduce   # 在py3中需要調用,不是內置函數
4 
5 def add(x,y):
6     return x + y
7 
8 ret = reduce(add,range(1,11))   # 叠代相加,結果不是叠代器,就是一個值
9 print(ret)             #  55

四:lambda 函數(匿名函數):傳統的函數需要定義和返回語句,並且需要函數名,但是匿名函數不需要函數名,是一條語句,這條語句和函數有相同的功能。一般情況下和map ,reduce 這些函數配合使用。

格式:lambda x,y : x + y (其中,x,y 為函數的參數,x+y 為函數的返回值)

example 4: reduce + lambda 使用實例

1 # lambda 匿名函數
2 # lambda x,y: x * y     參數是 x,y ,返回值是 x*y
3 
4 #    Reduce + lambda
5 
6 ret = reduce(lambda x,y: x * y,range(1,5))  # 叠代操作實現階乘功能
7 print(ret)   # 24

example 5:map + lambda 使用實例

1 #  map() + lambda
2 
3 square = map(lambda x: x * x,range(5))
4 print(square)       # <map object at 0x016673F0> 一個 map 對象
5 print(list(square)) #  [0, 1, 4, 9, 16]

十一:重要的內置函數