zoukankan      html  css  js  c++  java
  • Python的高级特性4:函数式编程

    函数式编程的核心就是把函数当成对象来进行编程。

    有两个常用到的方法:map/reduce,filter,其中map和filter是内建方法,而reduce不是,所以需要import相关模块。

    map接收两个参数,第一个参数是函数(处理办法),第二个参数是一个可迭代对象,而map可以把第二个参数的变量映射到函数中一一进行处理,结果以list形式返回。

    In [147]: def f(x):
       .....:     return x*x
       .....: 
    
    In [148]: r = map(f,[1,2,3,4,5,6])
    
    In [149]: list(r)
    Out[149]: [1, 4, 9, 16, 25, 36]

    reduce接收两个参数,第一个参数是函数(处理办法),第二个参数是一个可迭代对象,而reduce可以把第二个参数每一次next方法执行的结果映射到函数中进行处理,然后返回一个计算后的值。其实质就是不断的嵌套把此层函数作为下一层函数的参数直到最后。

    In [151]: from functools import reduce
    
    In [152]: def add(x,y):
       .....:     return x+y
       .....: 
    
    In [153]: reduce(add,[1,3,4,7,9])
    Out[153]: 24
    
    In [154]: reduce(add,[1])
    Out[154]: 1

    filter接收两个参数,第一个参数是函数(处理办法),第二个参数是一个可迭代对象,而map可以把第二个参数的变量映射到函数中,根据true/false过滤,结果以list形式返回。

    
    In [156]: def is_odd(n):
       .....:     return n % 2 == 1
       .....: 
    
    In [157]: list(filter(is_odd, (1, 2, 4, 5, 6, 9, 10, 15)))
    Out[157]: [1, 5, 9, 15]
  • 相关阅读:
    Windows 任务调度程序定时执行Python脚本
    sklearn 学习 第三篇:knn分类
    sklearn 学习 第二篇:特征预处理
    sklearn 学习 第一篇:分类
    DAX 第六篇:统计函数(描述性统计)
    DAX 第四篇:CALCULATE详解
    DAX 第三篇:过滤器函数
    DAX 第二篇:计算上下文
    DAX 第一篇:数据模型
    Git 第二篇:基本操作
  • 原文地址:https://www.cnblogs.com/alexkn/p/4660234.html
Copyright © 2011-2022 走看看