python中的lambda表達,pythonlambda表達

來源:互聯網
上載者:User

python中的lambda表達,pythonlambda表達

C++中的lambda運算式與C++11加入標準庫,是一個簡短的匿名的可調用對象,編譯器會將其轉化為一個匿名類的對象。lambda運算式的最大特點就是簡短靈活,調用方便。它不需要處理很複雜的邏輯,通常只包含一兩句簡短的代碼。

python作為一種優雅簡潔的指令碼語言自然不會錯過這種機制。python中的lambda運算式形式如下:

lambda 參數列表 : 運算式

如果沒有需要傳遞的參數,參數類表可以為空白了,但運算式部分不可為空,因為lambda運算式必須有返回值。

lambda運算式會返回一個值,這個值可以是一個計算結果,也可以是一個新的lambda運算式

返回一個值:

>>> f = lambda x,y : x+y //建立一個lambda運算式>>> print f(1, 2)        //調用lambda運算式3
返回一個新的lambda運算式:

>>> f = lambda x : lambda y : x+y  //嵌套的lambda運算式>>> a = f(1)                       //f(1)返回一個lambda運算式>>> b = a(10)>>> print b11


下面看看經常與lambda運算式一起使用的三個python內建函數: filter,map,reduce

1、filter(bool_func,seq):遍曆列表seq中的每個元素,傳入返回值為bool類型的函數bool_func中,從列表中過濾出函數返回值為true的元素,得到一個新的列表

<span style="font-size:10px;">>>> filter(lambda x : x > 3, [1, 2, 3, 4, 5])[4, 5]</span>
2、map(func,seq1[,seq2...]):將列表通過func函數映射為一個新的列表
>>> map(lambda x : x*2, [1, 2, [3, 4]])[2, 4, [3, 4, 3, 4]]

3、reduce(func,seq[,init]):這裡的func函數接受兩個參數,reduce依次從seq中取一個元素傳入func函數,另一個參數是上一次func函數的返回值。第三個參數為選擇性參數,如果指定了init,則開始時將init和seq中的第一個元素傳給func;如果沒有指定,則開始時取seq的頭兩個元素給func。

<span style="font-size:10px;">>>> reduce(lambda x,y : x + y,[1,2,3,4])  10  >>> reduce(lambda x,y : x + y,[1,2,3,4],10)  20  </span>





c#轉python遇到問題,對於lambda運算式

你這是用的ironpython吧。

def click(x,y):
x.Text = 'name'

form1.Click += click;

這樣寫即可
 
python中的lambda函數與變數的問題

>>> def p(x):
print(x)

>>> g=10
>>> m=lambda x=g:p(x)
>>> del(g)
>>> m()
10
>>>

這個絕對可以了
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.