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