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
  • 转载请注明出处,谢谢!
查看全文
  • 相关阅读:
    CF | Alyona and Mex
    ACM | HDU|6227_Rabbit
    计蒜客 | 拓扑排序 | 虎威山上的分配
    ACM Secrete Master Plan
    map————两个数组的交集(2)
    set 集合————两个数组的交集
    哈希表、数组————有效的字母异位词
    贪心算法,双指针————分发饼干
    堆————数据流的第k个大的元素
    容器————priority_queue
  • 原文地址:https://www.cnblogs.com/MikeZhang/p/2254355.html
  • Copyright © 2011-2022 走看看