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
  • 转载请注明出处,谢谢!
查看全文
  • 相关阅读:
    linux下,如何把整个文件夹上传到服务器(另一台linux)
    设置树莓派SSH连接因超时闲置断开(转)
    使用Cygwin登录Raspberry PI
    一个简单的工作日计算
    多线程端点服务发布程序(摘)
    编程实践笔记{Java 线程 并发处理 Webservice}(转)
    ActiveMQ安装
    Android轻量级ORM框架ActiveAndroid入门教程(转)
    我的第一个Raspberry PI装置
    java hashcode的Delphi实现
  • 原文地址:https://www.cnblogs.com/MikeZhang/p/2254355.html
  • Copyright © 2011-2022 走看看