十一:重要的內置函數
阿新 • • 發佈:2018-08-09
格式 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]
十一:重要的內置函數