zoukankan      html  css  js  c++  java
  • python 高阶函数

    filter()

    高阶函数filter()接收一个函数和一个序列 ,filter()把传入的函数依次作用于序列的每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素, 返回值是一个Iterator。

    res = filter(lambda x: x > 5, [1, 2, 10, 20])
    for i in res:
        print(i)
    
    10
    20
    

     

    map() 

    map()函数至少接收两个参数,一个为函数,其他是可迭代对象,map将传入的函数依次作用到可迭代对象的每个元素,并把结果作为新的Iterator返回。
    res = map(abs, [-1, -2, -3, -4, -5])
    for i in res:
        print(i)
    
    1
    2
    3
    4
    5
    

    reduce()

    reduce()函数接受三个参数, 第一个为函数, 第二个为序列, 把序列前两个元素传给函数参数,函数加工后,然后把得到的结果和第三个元素作为两个参数传给函数参数, 函数加工后得到的结果又和第四个元素作为两个参数传给函数参数。

    from functools import reduce
    res = reduce(lambda x, y: x*10+y, [1, 3, 5, 7, 9])
    print(res)
    
    13579
    

    lambda

    关键字lambda表示匿名函数,冒号前面的x表示函数参数, 冒号后面为函数体, 就是函数体只能有一个表达式, 返回值为该表达式的结果

    f = lambda x: x*x
    print(f(2))
    
    4
    

    partial

    functools.partial的作用就是,把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单

    import functools
    int2 = functools.partial(int, base=8)
    print(int2('64')) # 按8进制转换
    
    52
    

    sorted

    sorted 排序函数 接受三个参数,可迭代对象, key:key 是带一个参数的函数, reverse是否反转

    print(sorted([1, -2, 0, 4, -3], key=abs, reverse=True))
    [4, -3, -2, 1, 0]
    

      

     
  • 相关阅读:
    B-树和B+树
    线程与内核对象的同步-2
    线程与内核对象的同步
    高级线程同步 临界区
    Levenshtein Distance (编辑距离) 算法详解
    平衡二叉树
    静态查找表
    C++中的容器类详解
    How do I list all tables/indices contained in an SQLite database
    SmartGit STUDY 2
  • 原文地址:https://www.cnblogs.com/frank-shen/p/10354815.html
Copyright © 2011-2022 走看看