zoukankan      html  css  js  c++  java
  • python中常用的几个函数的正确用法-lambda/filter/map/reduce

    lambda/filter/map/reduce这几个函数面试中很肯定会用到,本篇主要介绍这几个函数的用法。

    1 lambda

    匿名函数,用法如下:

    # lambada 参数,参数,参数 : 返回的表达式  
    

    示例1:

    f = lambda x, y: x * y
    print(f(2, 3))    # 6
    

    示例2:

    r = (lambda x, y: x+y)(1, 2)
    print(r)          # 3
    

    2 filter

    filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为 True 的item组成一个filter对象(可迭代)(取决于sequence的类型)返回。

    示例:

    '''
    学习中遇到问题没人解答?小编创建了一个Python学习交流群:531509025
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    def gt_5(x):
        return x > 5
     
    r = filter(gt_5, range(10))
    print(list(r))      # [6, 7, 8, 9]
    

    3 map

    map(function, sequence) :对sequence中的item依次执行function(item),见执行结果组成一个map对象(可迭代)返回。

    示例:

    def mysum(x, y):
        return x + y
     
    r = map(mysum, range(5), range(5, 10))
    print(list(r))      # [5, 7, 9, 11, 13]
    

    4 reduce

    python3中,reduce已经从全局名称空间里移除,需要从functiontools中导入。

    reduce(function, sequence, starting_value):对sequence中的item顺序迭代调用function,如果有starting_value,还可以作为初始值。

    示例:

    '''
    学习中遇到问题没人解答?小编创建了一个Python学习交流群:531509025
    寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
    '''
    def mysum(x, y):
        return x + y
     
    from functools import reduce
    r = reduce(mysum, range(10))
    print(r)     # 45
    

    5 联合使用

    示例:计算1!+2!+...+10!

    def factorial(n):
        if n == 1:
            return 1
        return n*factorial(n-1)
    r = reduce(lambda x, y: x + y, map(factorial, range(1, 11)))
    print(r)    # 4037913
    

    这就是几个函数的用法了,是不是很简单呢?

  • 相关阅读:
    5.2.9.字符设备驱动代码实践2
    5.2.8.字符设备驱动代码实践1
    5.2.7.字符设备驱动工作原理2
    5.2.6.字符设备驱动工作原理1
    带参宏定义的思考
    重读gets()与is函数的用法
    地址/指针和字符串
    总体来说,require_once 肯定要比 require 性能好
    auto_prepend_file与auto_append_file使用方法
    经验分享:CSS浮动(float,clear)通俗讲解
  • 原文地址:https://www.cnblogs.com/python960410445/p/15382781.html
Copyright © 2011-2022 走看看