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--

      

  • 相关阅读:
    单例模式的三种写法
    ASP.NET如何下载大文件
    字符串是引用类型
    SQL 事务隔离级别
    Sql Server 锁
    设非主键为聚集索引
    C#如何使用SqlCacheDependency
    简易系统后台架构
    matlab cross 3*1 向量叉乘
    Matlab求齐次方程的解
  • 原文地址:https://www.cnblogs.com/yupeng/p/3345878.html
Copyright © 2011-2022 走看看