map:接受两个参数(函数,Iterable),map将传入的函数依次作用于Iterable的每个元素,并且返回新的Iterable
def f(x):
return x*x
r = map(f,[1,2,3,4]) #此时的r为惰性求值——可用next()和for...in取值
#通过list()返回全部
print(list(r)) #[1, 4, 9, 16]
reduce:接受两个参数(函数,序列),reduce把一个函数作用于序列上,返回的结果继续和序列的下一个元素做累积计算,其效果为:reduce(f,[x,y,z])=>f(f(x,y),z)
from functools import reduce
def add(x,y):
return x+y
reduce(add,[1,3,5,7,9]) #
filter:过滤序列。接受两个参数(函数,序列),filter把函数作用于序列上,根据返回值是否为True,决定是否放弃该元素
def is_odd(x):
return x%2==1
list(filter(is_odd,[1,2,3,4,5,6,7,8,9])) #filter惰性求值[1, 3, 5, 7, 9]
sorted:排序,可排序对象包括数字list、字符串list、dict等,可接受三个参数,后两个为可选
# sorted([],key=express,reverse=True) key:对每个元素的处理方法   reverse:是否反向排序
sorted([0,1,-2,-1,6,3,8],key=abs,reverse=True) #[8, 6, 3, -2, 1, -1, 0]
匿名函数 lambda:匿名函数关键字 :前的元素表示匿名函数的参数 匿名函数不用谢return表达式,返回值就是该表达式的值
m = list(map(lambda x: x*x,[1,2,3,4]))
print(m) #[1, 4, 9, 16]
装饰器:代码运行期间动态增加功能
#在now函数运行前自动打印日志
import functools
def log(func):
@functools.wraps(func)
def wrpper(*args,**kw):
print("call %s()" % func.__name__)
return func(*args,**kw)
return wrpper
# 调用装饰器
@log
def now():
print("hello") now() #call now() hello
偏函数:functools.partial 把函数的某些参数固定住,返回一个新的函数,使调用更简单
import functools
int2 = functools.partial(int,base=2)
print(int2("")) #
 
 
 

Python函数式编程(把函数作为参数传入)的更多相关文章

  1. Python进阶之函数式编程(把函数作为参数)

    什么是函数式编程? 什么是函数式编程? 函数:function 函数式:functional,一种编程范式 函数式编程是一种抽象计算的编程模式 函数≠函数式,比如:计算≠计算机 在计算机当中,计算机硬 ...

  2. 1.python函数式编程-map函数

    编程方法论 面向过程 函数式 面向对象 面向过程 将编程过程拆分成多个步骤,在函数中按照每个步骤进行编程: 函数式编程 编程语言定义的函数+数学意义的函数 1.不可变,不用变量保存状态,不修改变量: ...

  3. python函数式编程-偏向函数

    Python的functools模块提供了很多有用的功能,其中一个就是偏函数(Partial function).要注意,这里的偏函数和数学意义上的偏函数不一样. 在介绍函数参数的时候,我们讲到,通过 ...

  4. python函数式编程——返回函数

    1.函数作为返回值 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回. 2.闭包 注意到返回的函数在其定义内部引用了局部变量args,所以,当一个函数返回了一个函数后,其内部的局部变量还 ...

  5. python函数式编程——匿名函数(lambda)

    匿名函数lambda lambda x:x*x x就是参数 相当于函数 def f(x): return x*x 匿名函数可以作为函数对象赋值给变量: >>> f = lambda ...

  6. python函数式编程-匿名函数

    >>> map(lambda x: x * x, [, , , , , , , , ]) [, , , , , , , , ] 关键字lambda表示匿名函数,冒号前面的x表示函数参 ...

  7. 转自:Python函数式编程指南(二):函数

    2. 从函数开始 2.1. 定义一个函数 如下定义了一个求和函数: 1 2 def add(x, y):     return x + y 关于参数和返回值的语法细节可以参考其他文档,这里就略过了. ...

  8. python 函数式编程:高阶函数,map/reduce

    python 函数式编程:高阶函数,map/reduce #函数式编程 #函数式编程一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数 #(一)高阶函数 f=abs f print ...

  9. python函数式编程之返回函数、匿名函数、装饰器、偏函数学习

    python函数式编程之返回函数 高阶函数处理可以接受函数作为参数外,还可以把函数作为结果值返回. 函数作为返回值 def laxy_sum(*args): def sum(): ax = 0; fo ...

  10. Python中将函数作为另一个函数的参数传入并调用

    在Python中,函数本身也是对象,所以可以将函数作为参数传入另一函数并进行调用 在旧版本中,可以使用apply(function, *args, **kwargs)进行调用,但是在新版本中已经移除, ...

随机推荐

  1. Swift学习 --- 2.1基础部分

    1.swift 能够省去; 2.println与print的差别就是一个能够换行一个不能够 3.swift省去了.h与.m 直接一个swift文件 4.元组能够返回多个值,元组(tuples)把多个值 ...

  2. C#练习委托、事件、事件处理

    控制台应用程序效果: 代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

  3. 解压tar包中的指定文件

    解压<a 'tar');"="" href="http://asmboy001.blog.51cto.com/'#\'"" targe ...

  4. Linux基础系列:常用命令(8)_shell script

    一.什么是shell script 将OS命令堆积到可执行的文件里,由上至下的顺序执行文本里的OS命令 就是脚本了. 再加上些智能(条件/流控)控制,就变成了智能化脚本了 二.变量命名规则 以字母或下 ...

  5. rails dependent

    dependent 可以設定當物件刪除時,也會順便刪除它的 has_many 物件: class Event < ActiveRecord::Base has_many :attendees, ...

  6. 高性能javascript学习总结(2)--DOM编程

    我们知道,对DOM的操作都是非常的耗性能的,那么为什么会耗性能呢?      文档对象模型(DOM)是一个独立于语言的,使用 XML和 HTML 文档操作的应用程序接口(API).在浏览器中,主要与 ...

  7. QCon2016 上海会议汇总(2) - 团队管理

    QCon 2016上海日程:http://2016.qconshanghai.com/schedule <当你的团队还支撑不起梦想时> - 链尚网技术合伙人 杨荣伟 Figo讲述了如何训练 ...

  8. C#仿QQ设置界面导航

    效果预览,选择左边标签,右边内容会自动滚动到适当位置 public class AnchorPanel { List<PanelMenu> lst = new List<PanelM ...

  9. js原生函数一些封装

    这是一些js原生封装的函数,主要是为了兼容IE浏览器,如下 获取css样式 function getStyle(ele, prop) { if(window.getComputedStyle) { r ...

  10. hadoop 学习笔记:mapreduce框架详解(转)

    原文:http://www.cnblogs.com/sharpxiajun/p/3151395.html(有删减) Mapreduce运行机制 下面我贴出几张图,这些图都是我在百度图片里找到的比较好的 ...