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

      

  • 相关阅读:
    利用原生JS判断组合键
    MySQL基本操作简述
    Java链接Mysql传输数据
    Java培训--->>基础
    Java基础之字符串-->>字符串处理
    Java基础之结构-->>条件结构与循环结构
    Java基础之数组-->>数组常用操作
    Front End Development Certification (HTML5 and CSS)
    FlexSlider插件的详细设置参数
    常见<meta>的基本用法详解
  • 原文地址:https://www.cnblogs.com/yupeng/p/3345878.html
Copyright © 2011-2022 走看看