zoukankan      html  css  js  c++  java
  • python 内置函数 map filter reduce lambda

    map(函数名,可遍历迭代的对象)
    # 列组元素全加 10
    # map(需要做什么的函数,遍历迭代对象)函数    map()遍历序列得到一个列表,列表的序号和个数和原来一样
    l = [2,3,4,5,6,7,8]
    t = list(map(lambda x:x+10,l))     #遍历 l,l 里的元素全加10  map得到的结果是可迭代对象所以要list
    print(t)                    #===>[12, 13, 14, 15, 16, 17, 18]
    
    filter(函数名,可遍历迭代的对象)
    # filter(返回Ture的函数,遍历迭代对象)函数     filter()  遍历序列保留返回Ture的元素组成一个列表   利用filter过滤
    l = [1,2,3,4,5]
    l1 = list(filter(lambda x:x>2,l))        #遍历列表 l,返回 l 里大于2的元素   filter,返回可迭代对象所以要list
    print(l1)                  #===>[3, 4, 5]
    
    reduce(函数名,可遍历迭代的对象)
    from functools import reduce          #用reduce,需要包含这个框架
    l = [2,5,8,10]
    print(reduce(lambda x,y:x+y,l))       #===>25      #reduce用来计算
    print(reduce(lambda x,y:x+y,l,5))     #===>30     #默认初始值为None,改为5
    
     三元运算(三目运算),是对简单的条件语句的缩写。
    # 书写格式
     
    result = 值1 if 条件 else 值2
     
    # 如果条件成立,那么将 “值1” 赋值给result变量,否则,将“值2”赋值给result变量
    
    
    
    

    并行遍历zip(a,b)函数使用方法:

    它接收两个可迭代的对象a,b作为参数,将对象中对应的元素打包成一个个tuple(元组),若传入参数的长度不等,则返回长度和参数中长度最短的对象相同。

    print(list(zip([1, 2, 3], ('a', 'b', 'c', 'd'))))
    # 结果 [(1, 'a'), (2, 'b'), (3, 'c')]
    

    divmod(a,b)

    divmod(a,b)方法返回的是数字a与b(也可以是复数)运算结果a//b(除法取整)以及a对b的余数

    返回结果类型为tuple

    print(divmod(5, 2))
    # 结果 (2, 1)
    

     eval

    用法一:将字符串中的数学表达式当成有效的表达式来求值并返回计算结果。

    用法二:将字符串中的数据类型提取出来并返回此数据类型的数据 如将 ''[1, 2, 2]''转换成[1, 2, 3] 

    print(eval('1+2+3'))
    print(type(eval('[1, 2, 3]')))
    # 结果 6
    # 结果 <class 'list'>
    
     匿名函数就是不需要显式的指定函数
    #这段代码
    def calc(n):
        return n**n
    print(calc(10))
     
    #换成匿名函数
    calc = lambda n:n**n
    print(calc(10))
    
    
    

     你也许会说,用上这个东西没感觉有毛方便呀, 。。。。呵呵,如果是这么用,确实没毛线改进,不过匿名函数主要是和其它函数搭配使用的呢 如和 map filter reduce 使用

     
     


  • 相关阅读:
    SqlServer存储过程调用接口
    Zend引擎探索 之 PHP中前置递增不返回左值
    在CentOS上为Docker开启SELinux
    PSR-4 自动加载器
    [译]漫画SELinux概念
    NodeMCU Builder, yet another NodeMCU IDE
    Mac OS X更新VirtualBox以后Genymotion无法启动的一种情况
    Win32API起始处的mov edi, edi与用户空间InlineHook
    DLL的导出函数重定向机制
    一个Win32API Trace Tool的设计与实现
  • 原文地址:https://www.cnblogs.com/liaoboshi/p/6123451.html
Copyright © 2011-2022 走看看