zoukankan      html  css  js  c++  java
  • python中dict和lambda结合的小例子

    python的dict用起来很方便,可以自定义key值,并通过下标访问,示例如下:

    >>> d = {'key1':'value1',
    ... 'key2':'value2',
    ... 'key3':'value3'}
    >>> print d['key2']
    value2
    >>>

    lambda表达式也是很实用的东东,示例如下:

    >>> f = lambda x : x**2
    >>> print f(2)
    4
    >>>

    两者结合可以实现结构相似的函数调用,使用起来很方便,示例如下: 

    示例一:不带参数  

    #! /usr/bin/python
    
    msgCtrl = "1 : pause\n2 : stop\n3 : restart\nother to quit\n"
    
    ctrlMap = {
    '1':    lambda : doPause(),
    '2':    lambda : doStop(),
    '3':    lambda : doRestart()}
    
    def doPause():
            print 'do pause'
    
    def doStop():
            print 'do stop'
    
    def doRestart():
            print 'do restart'
    
    if __name__ == '__main__':
            while True:
                    print msgCtrl
                    cmdCtrl = raw_input('Input : ')
                    if not ctrlMap.has_key(cmdCtrl):break
                    ctrlMap[cmdCtrl]()
    

      示例二:带参数

    #! /usr/bin/python
    
    msgCtrl = "1 : +\n2 : -\n3 : *\nother to quit\n"
    
    ctrlMap = {
    '1':    lambda x,y : x+y,
    '2':    lambda x,y : x-y,
    '3':    lambda x,y : x*y}
    
    
    if __name__ == '__main__':
            while True:
                    print msgCtrl
                    cmdCtrl = raw_input('Input : ')
                    if not ctrlMap.has_key(cmdCtrl):break
                    print ctrlMap[cmdCtrl](10,2),"\n"
    

     

  • E-Mail : Mike_Zhang@live.com
  • 转载请注明出处,谢谢!
查看全文
  • 相关阅读:
    【Mysql】日期时间格式化
    【CSS】css网页背景图片设置
    【C#】【Thread】SynchronizationContext线程间同步
    love2d--glsl03噪声
    love2d--glsl02变量和语句
    love2d--glsl01简单的渲染
    love2d 0.9发布
    工作感受
    本系列love2d示例代码错误集中整理
    一些lua代码
  • 原文地址:https://www.cnblogs.com/MikeZhang/p/2254355.html
  • Copyright © 2011-2022 走看看