lambda在python中的意思_Python中的lambda的简单介绍
1、lambda是什么?
func=lambda x:x+1
print(func(1))
#2
print(func(2))
#3
#以上lambda等同于以下函數(shù)
def func(x):
return(x+1)
可以這樣認(rèn)為,lambda作為一個(gè)表達(dá)式,定義了一個(gè)匿名函數(shù),上例的代碼x為入口參數(shù),x+1為函數(shù)體。在這里lambda簡(jiǎn)化了函數(shù)定義的書(shū)寫(xiě)形式。是代碼更為簡(jiǎn)潔,但是使用函數(shù)的定義方式更為直觀,易理解。
Python中,也有幾個(gè)定義好的全局函數(shù)方便使用的,filter, map, reduce。
from functools import reduce
foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]
print (list(filter(lambda x: x % 3 == 0, foo)))
#[18, 9, 24, 12, 27]
print (list(map(lambda x: x * 2 + 10, foo)))
#[14, 46, 28, 54, 44, 58, 26, 34, 64]
print (reduce(lambda x, y: x + y, foo))
#139
可以直接做一個(gè)迭代用
print(list(map(lambda x: 3, range(0,4))))
# [3, 3, 3, 3]
# x不做任何變量,3可以是函數(shù)不需要x一定是函數(shù)變量
上面例子中的map的作用,非常簡(jiǎn)單清晰。但是,Python是否非要使用lambda才能做到這樣的簡(jiǎn)潔程度呢?在對(duì)象遍歷處理方面,其實(shí)Python的for..in..if語(yǔ)法已經(jīng)很強(qiáng)大,并且在易讀上勝過(guò)了lambda。
比如上面map的例子,可以寫(xiě)成:print ([x * 2 + 10 for x in foo]) 非常的簡(jiǎn)潔,易懂。
filter的例子可以寫(xiě)成:print ([x for x in foo if x % 3 == 0]) 同樣也是比lambda的方式更容易理解。
總結(jié)
以上是生活随笔為你收集整理的lambda在python中的意思_Python中的lambda的简单介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python 参数_Python函数-参
- 下一篇: python等差数列末项计算_Pytho