zoukankan      html  css  js  c++  java
  • python之lambda、filter、map、reduce的用法讲解

    lambda:实现python中单行最小函数。

    v = lambda x:x ** 2
    #相当于
    def v(x):
         return x ** 2
    • filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)。

    filter(function or None, sequence) -> list, tuple, or string:入参为函数和列表/元组/字符串,返回值为item列表/元组/字符串

       filter 函数会对指定序列执行过滤操作,filter(function or None, sequence) -> filter object (list, tuple, or string in 2.x)
       filter 函数会对序列参数 sequence 中的每个元素调用 function 函数,最后返回的结果包含调用结果为True的元素

       注意:3.x 返回的是一个filter object (后续的函数map也是返回object),要加上list()等类型转换;而之前 2.x 版本的返回值类型和参数sequence的类型相同

    import math
    def is_sqr(x):
        return math.sqrt(x) % 1 == 0
    
    newlist = filter(is_sqr, range(1,101))
    print(list(newlist))
    • map(function, sequence) :对sequence中的item依次执行function(item),将执行结果function(item)组成一个List返回。

    map(function, sequence[, sequence, ...]) -> list:入参是为函数和列表/元组/字符串,返回值为function(item)列表

      map 函数会对指定序列做映射操作,map(function or None, sequence) ->  map object (list, tuple, or string in 2.x)

      map 函数会对序列参数 sequence 中的每个元素调用 function 函数,返回的结果为每一个元素调用function函数的返回值

    a =map(lambda x:x*x-4,range(10))
    print(list(a))

    结果 : [-4, -3, 0, 5, 12, 21, 32, 45, 60, 77]
    • reduce(function, sequence, starting_value):对sequence中的item顺序迭代调用function,如果有starting_value,还可以作为初始值调用。function接收的参数个数只能为2,先把sequence中第一个值和第二个值当参数传给function,再把function的返回值和第三个值当参数传给function,然后只返回一个结果。

    reduce(function, sequence[, initial]) -> value:入参是为函数和列表/元组/字符串和初始值,返回值为数值

        注意:reduce 函数在 3.x 版本不是内建函数了,reduce()函数已经被从全局名字空间里移除了,它现在被放置在fucntools模块里,用的话要 先引入

       from functools import reduce

    from functools import reduce
    def add(x,y):
        return x + y
    
    print(reduce(add, range(1,100),0))

    总结:

    1、filter和map都是python内置的函数,可以直接调用,reduce在functools模块
    2、要过滤删减序列用filter;要对多个序列做函数运算用map,reduce用得少。

  • 相关阅读:
    Jmeter使用自定义编写代码
    Jmeter关于断言
    Jmeter之函数助手
    无界面运行Jmeter压测脚本 --后知者
    接口测试全流程总结
    全面的功能测试点总结
    简述核心网
    题1:一个手机H5测试页面,页面上有一个文本输入框和一个次数的按键---测试用例编写
    2019 版_Python 常见的 170 道面试题全解析:编码规范
    2019 版_Python 常见的 170 道面试题全解析:语言特性
  • 原文地址:https://www.cnblogs.com/taoge007/p/9675701.html
Copyright © 2011-2022 走看看