python匿名函數lambda與switch的實現,pythonlambda

來源:互聯網
上載者:User

python匿名函數lambda與switch的實現,pythonlambda

1,lambda的文法跟es6的箭頭函數差不多

>>> show=lambda x,y: x * y>>> show( 10, 20 )200

2,遞迴求階乘

>>> def fab( n ):...     if n == 0:...             return 1...     else:...             return n * fab( n - 1)... >>> fab( 3 )6>>> fab( 5 )120>>> fab( 6 )720>>> 

利用reduce函數,也可以實現累計運算

>>> l = range( 1, 6 )>>> l[1, 2, 3, 4, 5]>>> def f( x, y ):...     return x * y... >>> reduce( f, l )120>>> 

不需要定義函數,可以用lambda運算式簡化

>>> fab = lambda x, y: x * y>>> reduce( fab, [ 1, 2, 3, 4, 5, 6 ] )720>>> reduce( lambda x,y: x *y, [ 1, 2, 3, 4, 5, 6 ] )720>>> 

3,字典+函數可以實現switch的分支判斷效果

if。。。。else實現一個加減法

#!/usr/bin/python#coding:utf-8from __future__ import divisiondef add( a, b ):    return a + bdef sbb( a, b ):    return a - bdef mul( a, b ):    return a * bdef div( a, b ):    return a / bdef oper( x, o, y ):    if o == '+':        return add( x, y )    elif o == '-':        return sbb( x, y )    elif o == '*':        return mul( x, y )    elif o == '/':        return div( x, y )    else:        passprint oper( 10, '/', 20 )

用字典和函數改造成switch的方式

#!/usr/bin/python#coding:utf-8from __future__ import divisiondef add( a, b ):    return a + bdef sbb( a, b ):    return a - bdef mul( a, b ):    return a * bdef div( a, b ):    return a / boper = { '+' : add, '-' : sbb, '*' : mul, '/' : div }def mySwitch( o, x, y ):    #return oper[o]( x, y )    #oper.get(o)等價於oper[0]取字典中的某一項    return oper.get(o)( x, y )print mySwitch( '/', 10, 20 )

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.