zoukankan      html  css  js  c++  java
  • python 中的map,dict,lambda,reduce,filter

    1.map(function,sequence) 对sequence 中的item依次执行function(item), 见执行结果组成一个List返回

    例如:

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    def add100(x):
        return x+100
    
    hh = [10,11,12]
    
    print(map(add100,hh))
    
    
    def abc(a,b,c):
        return a*1000+b*100+c
    
    list1 = [11,22,33]
    
    list2 = [44,55,66]
    
    list3 = [77,88,99]
    
    print(map(abc,list1,list2,list3))
    
    list4 = [11,22,33]
    
    print(map(None,list4))
    
    print([add100(x) for x in hh])
    

     也有人说map 类似于,这个解析很形象

    #map(f, iterable) ==> [f(x) for x in iterable]

    2. dict 就是字典,以key,value的形式保存

    例如:

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    dt = {'a':'1','b':'2','c':'3','d':'4'}
    
    for k in dt:
        print 'dt[%s] = ' %k,dt[k]
    
    print dt.items()
    
    for(k,v) in dt.items():
        print 'dt[%s] = ' %k,v
    
    print dt.iteritems()
    
    for(k,v) in dt.iteritems():
    
        print 'dt[%s] = ' %k,v
    

    3.lambda 他是一个表达式,不是语句,提供了一种快速定义单行函数形式,非常简单

    例如:

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    a = lambda x:x*2
    
    print(a(10))
    
    b =lambda x,y,z:(x+y)*z
    
    print(b(2,3,49))
    
    
    print [(lambda x:x*x)(x) for x in range(1,11)]
    

      

    4.reduce(function,sequence,start_value) 对sequence 中的item一次迭代调用function(item),如果有start_value,则可以当做初始值

    例如:

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    def add(x,y):
        return x+y
    
    print reduce(add,range(1,11),100)
    

      

    5.filter(function,sequence) 过滤函数  对sequence 中的item依次执行function(item), 将执行结果为True的item组成一个List/String/Tuple

    例如:

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    def fn1(x):
        return x%2!=0 and x%3!=0
    
    print filter(fn1,range(2,25))
    
    
    def fn2(x):
        return x!='a'
    
    print filter(fn2,'abcdefg')
    

    --end--

      

  • 相关阅读:
    【WPF】【基础】布局系统
    【设计】【托管扩展性框架】 MEF vs 2010 samples
    【wpf】【控件】内容控件
    【Wpf】【debug】Exception has been thrown by the target of an invocation.
    【设计模式】概述
    期待与悲催中的2012
    金额转为大写人民币
    使用vs2005的GridView控件,菜鸟问题。
    Microsoft Visual Studio 2005中使用水晶报表
    将金额小写转化成汉字大写(javascript)
  • 原文地址:https://www.cnblogs.com/yupeng/p/3345878.html
Copyright © 2011-2022 走看看