lambda/filter/map/reduce
這幾個函數面試中很肯定會用到,本篇主要介紹這幾個函數的用法。
1 lambda
匿名函數,用法如下:
1
|
# lambada 參數,參數,參數 : 返回的表達式 |
示例1:
1
2
|
f = lambda x, y: x * y print (f( 2 , 3 )) # 6 |
示例2:
1
2
|
r = ( lambda x, y: x + y)( 1 , 2 ) print (r) # 3 |
2 filter
filter(function, sequence):對sequence
中的item
依次執行function(item)
,將執行結果為 True
的item
組成一個filter
對象(可迭代)(取決于sequence
的類型)返回。
示例:
1
2
3
4
5
6
7
8
9
|
''' 學習中遇到問題沒人解答?小編創建了一個Python學習交流群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' def gt_5(x): return x > 5 r = filter (gt_5, range ( 10 )) print ( list (r)) # [6, 7, 8, 9] |
3 map
map(function, sequence):對sequence
中的item
依次執行function(item)
,見執行結果組成一個map
對象(可迭代)返回。
示例:
1
2
3
4
5
|
def mysum(x, y): return x + y r = map (mysum, range ( 5 ), range ( 5 , 10 )) print ( list (r)) # [5, 7, 9, 11, 13] |
4 reduce
python3
中,reduce
已經從全局名稱空間里移除,需要從functiontools
中導入。
reduce
(function, sequence, starting_value):對sequence
中的item
順序迭代調用function
,如果有starting_value
,還可以作為初始值。
示例:
1
2
3
4
5
6
7
8
9
10
|
''' 學習中遇到問題沒人解答?小編創建了一個Python學習交流群:531509025 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' def mysum(x, y): return x + y from functools import reduce r = reduce (mysum, range ( 10 )) print (r) # 45 |
5 聯合使用
示例:計算1!+2!+...+10!
1
2
3
4
5
6
|
def factorial(n): if n = = 1 : return 1 return n * factorial(n - 1 ) r = reduce ( lambda x, y: x + y, map (factorial, range ( 1 , 11 ))) print (r) # 4037913 |
這就是幾個函數的用法了,是不是很簡單呢?
到此這篇關于python中幾個常用函數的正確用法-lambda/filter/map/reduce的文章就介紹到這了,更多相關python常用函數的正確用法lambda filter map reduce
內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://www.cnblogs.com/python960410445/p/15382781.html