python高级 之(三) --- 高阶函数】的更多相关文章

高阶函数 map函数 简介 """ map(func,*iterables) 参数:一个是函数.一个是序列 作用:将序列中的元素依此作用于函数,将函数运行结果返回 存放于map类型数据中.常用于转化 注意:存放在map类型的数据中,如果数据被取出,再去取就没有数据了 """ # "拼接符".join(序列).要求:序列中的内容必须是字符串类型 # 将序列中的整型转换成字符串类型 list0 = [23,45,67] # 方法一…
python高级特性 1.集合的推导式 列表推导式,使用一句表达式构造一个新列表,可包含过滤.转换等操作. 语法:[exp for item in collection if codition] if codition - 可选 字典推导式,使用一句表达式构造一个新列表,可包含过滤.转换等操作. 语法:{key_exp:value_exp for item in collection if codition} 集合推导式 语法:{exp for item in collection if cod…
1.map() : python内置的高阶函数,接收一个函数f和一个list,并通过把函数f依次作用在list的每个元素上,得到一个新的list并            返回. def f(x): return x * x print map(f , [ 1 , 2 , 3 , 4 ]) 输出----> [1,4,9,16] 注:map()并不改变原有的list,而是返回一个新的list 2.reduce() :内置高阶函数,接收一个函数f和一个list.f必须接收两个参数,reduc()对li…
原文使用的是python2,现修改为python3,全部都实际输出过,可以运行. 引用自:http://www.cnblogs.com/duyaya/p/8562898.html https://blog.csdn.net/cv_you/article/details/70880405 python内置常用高阶函数: 一.函数式编程 •函数本身可以赋值给变量,赋值后变量为函数: •允许将函数本身作为参数传入另一个函数: •允许返回一个函数. 1.map()函数 是 Python 内置的高阶函数,…
python 函数式编程:高阶函数,map/reduce #函数式编程 #函数式编程一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数 #(一)高阶函数 f=abs f print(f(-20)) #结果 20 #函数可以赋值给一个变量,即:变量可以指向函数 #那么函数名是什么?函数名其实就是指向函数的变量! #下面的代码,执行后,abs已经不指向求绝对值函数而是一个整数10了. #后面的abs(-10)将报错,无法执行,必须重启python才可以. #abs=10 #abs…
递归函数:函数内部调用自身.(要注意跳出条件,否则会死循环) 高阶函数:函数的参数包含函数 递归函数 #coding:utf-8 #/usr/bin/python """ 2018-11-17 dinghanhua 递归函数 高阶函数 """ '''递归函数,函数内部调用函数本身''' '''n!''' def f_mul(n): if type(n) != type(1) or n <= 0: #不是整数或小于0 raise Except…
序列函数: enumerate: for循环时记录索引,逐个返回元组(i, item) sorted:返回新的有序列表 zip:压缩将多个序列的对应位置的元素组成元组 zip(*元组列表): 解压缩 reversed 逆序迭代,可配合list返回逆序列表 update 合并字典 hash 函数,只存在唯一值,只有这种才能作为键 lis = ['a','b','c'] for i,item in enumerate(lis): print(str(i)+'-'+item) 0-a1-b2-c li…
  高阶函数:能接受函数作为参数的函数. 如: f=abs def   add(x,y,f): return f(x)+f(y) 如果我们用:add(-5,9,f)来调用该高阶函数,则返回结果为:14.(abs是Python提供的求绝对值的函数) Python中的map()函数 map()  是Python中的内置高阶函数,接受一个函数f和一个list作为参数,返回一个新的被函数f处理过的list集合,不会改变原有list集合 如: def  f(x): return  x+3 print ma…
一:函数调用顺序:其他高级语言类似,Python 不允许在函数未声明之前,对其进行引用或者调用错误示范: def foo(): print 'in the foo' bar() foo() 报错: in the foo Traceback (most recent call last): File "<pyshell#13>", line 1, in <module> foo() File "<pyshell#12>", line…
一 .匿名函数 顾名思议就是没有名字的函数,那为什么要设立匿名函数,他有什么作用呢?lambda 函数就是一种快速定义单行的最小函数,可以用在任何需要函数的地方.   常规版: def fun(x,y) return x*y lambda   示例: /usr/bin/python #coding=utf-8 #@Time :2017/11/2 15:14 #@Auther :liuzhenchuan #@File :高阶函数下和匿名函数.py   #匿名函数,就是没有名字的函数 def sum…
一.高阶函数 把函数当做参数传递的一种函数   1>map()函数 map函数是python内置的一个高阶函数,它接受一个函数f和一个list,并把list元素以此传递给函数f,然后返回一个函数f处理完所有list元素的列表,如下所示:   #map()函数,传入的必须是一个可迭代的对象 lt = [1,2,3,4,5] # lt = [1,2,3,4,5] def f2(x): return x*x ml = map(f2,lt) print type(ml) print ml   >>…
#!/usr/bin/env python # -*- coding:utf-8 -*- #Author:ersa """ 变量可以指向函数,函数的参数能接收变量, 那么一个函数就可以接收另一个函数作为参数, 这种函数就称之为高阶函数. """ def add(x,y,f): return f(x)+f(y) res = add(3,-6,abs) print(res)…
1.高阶函数: 特点:函数的形参位置必须接受一个函数对象 分类学习: 1).map(fn,lsd1,[lsd2...]): 参数一:fn --> 函数对象 参数二:lsd1 --> 序列对象(字符串.列表.range...) 功能: 将fn函数作用于lsd1中的每一个元素上, 将每次执行的结果存入到一个map对象中返回: [注意]得到的这个map对象是一个迭代器对象 需求:lt = ['1','2','3','4','5'] --> [1,2,3,4,5] map(int,lt):执行过…
一.map #变量可以指向函数,函数的参数能接受变量,那么一个函数就可以接受另一个函数作为参数,这种函数被称之为高阶函数 def add(x,y,f): return f(x)+f(y) print(add(-5,-9,abs)) ''' map()函数接受两个参数,一个是函数,一个是Iterable.map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterable返回. 举例函数作用说明:把f(x)作用在list的每一个元素并把结果生成一个新的list. ''' def f(x):…
高阶函数就是把函数当做参数传递的一种函数, 例如: 执行结果: 1.map()函数 map()接收一个函数 f 和一个list, 并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回. 执行结果: 2.reduce()函数 reduce()函数接收的参数和 map()类似,一个函数 f,一个list, 但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数, reduce()对list的每个元素反复调用函数f,并返回最终结果值. 执行结果:  …
基本概念 函数式编程,是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量.因此,任意一个函数,只要输入确定,输出就确定的这种函数我们称之为纯函数,我们称这种函数没有副作用.而允许使用白变量的程序设计语言,由于函数内部的变量状态是不确定的,同样的输入可能有不同的输出,我们称这种函数为有副作用的. 函数式编程的一个特点就是,允许把函数本身作为参数传递给另一个函数,还允许返回一个函数! Python对函数式编程提供部分支持.由于Python允许使用变量,因此,Python不是纯函数式…
递归函数 在函数内部,可以调用其他函数.但是在一个函数在内部调用自身,这个函数被称为递归函数 def calc(n): print(n) if int(n/2) == 0: #结束符 return n return calc(int(n/2)) #调用函数自身 m = calc(10) print('----->',m) #输出结果 10 5 2 1 -----> 1 #最后返回的值 递归特性: 1. 必须有一个明确的结束条件 2. 每次进入更深一层递归时,问题规模相比上次递归都应有所减少 3…
1.高阶函数介绍: 一个函数可以作为参数传给另外一个函数,或者一个函数的返回值为另外一个函数(若返回值为该函数本身,则为递归),如果满足其一,则为高阶函数. 常见的高阶函数:map().sorted().filter()等也是python内置的函数,也可以自定义高阶函数,其实装饰器也算一种高阶函数. 2.内置高阶函数: (1)map(function,iterable) 函数 function:接收一个函数 iterable:接受一个可迭代对象(字符串,元组,列表,字典) 作用:可将迭代对象 _…
函数式编程高阶函数 就是把函数作为参数的函数,这种抽象的编程方式就是函数式编程.--- - -跳过,不是很理解,汗 - ---…
一.高阶函数 函数只要有以下两个特征中一个就可以称为高阶函数: a:函数名作为一个实参传入另一个函数中 b:函数的返回值中包含函数名 下面我们用代码来感受一下这两种形式: import time # 通过高阶函数将函数名作为参数传入,在不改变函数源代码的情况下为其添加功能 def bar(): time.sleep(3) print("in the bar") def test1(func): start_time = time.time() func() end_time = tim…
# 使用默认的高阶函数map和reduce import randomdef map_function(arg):  # 生成测试数据 return (arg,1) list_map = list(map(map_function,list(ran * random.randint(1,2) for ran in list(range(10))))) list_map.append((0,1)) # 保持一定有相同的keyprint("---原数据---")print(list_map…
一.高阶函数:分两种:一种是返回值中包含函数体:另一种是把一个函数体当作了参数传给了另一个函数 1.返回值中包含函数体 例1. def test(): print('这是一个测试') return test f = test() f() 这是一个测试 这是一个测试 例2 def inward(): print('from inward') def outward(): print('from outward') return inward f = outward() f() from outwa…
高阶函数Higher-orderfunction 变量可以指向函数 >>> abs #abs(-10)是函数调用,而abs是函数本身 <built-in function abs> >>> f = abs #函数本身也可以赋值给变量 >>> f #变量可以指向函数 <built-in function abs> >>> f(-10) #变量调用函数 10 函数名也是变量 >>> abs = 1…
一.filter #filter()函数用于过滤序列.和map()类似,也接收一个函数和一个序列,把函数依次作用于每个元素,根据返回值是True还是False决定是否保留该元素. #filter()函数返回的是一个Iterator,即惰性序列,所以要强迫filter()完成计算结果,需要用list()函数获得所有结果并返回list. def odd(n): return n%2==1 ms=list(filter(odd,[1,2,3,4,5,6,7,8,9,10])) #保留奇数 print(…
2).reduce(fn,lsd): 参数一:fn --> 函数对象 参数二:lsd --> 序列对象 功能: 先将lsd中的第一和第二个元素去除传入到fn中参与运算, 运算后得到结果,再和第三个元素传入到fn中参与运算, 以此类推... [注意]: reduce函数属于functools模块中的函数,所以需要显示的先导入functools模块再使用 from functools import reduce from functools import reduce lt=[1,2,3,4] '…
3.filter filter()也接收一个函数和一个序列.和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素.相当于一个过滤器作用.例如,在一个list中,删掉偶数,只保留奇数,可以这么写: def is_odd(n): return n % 2 == 1 list(filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15])) # 结果: [1, 5, 9, 15] 这个filter的关键…
1.map map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回.示例: >>> def f(x): ... return x * x ... >>> r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9]) >>> list(r) [1, 4, 9, 16, 25, 36, 49, 64, 81] 2.reduce reduce把一个函数…
演示sorted函数的使用,以及和sort的区别:我们将sorted和sort进行一番比较:相同点:它们都是来实现排序的操作(功能层面)不同点:列表中的sort函数,它执行完毕后会直接影响原本这个list的内部结构(内部的数据发生改变了):而内置函数sorted函数,它执行完毕后不会影响原本容器中的内部结构,而会返回一个新的列表给程序:回顾排序:选择排序,冒泡排序它们的性能都很低下:意味着开发不会用,但是面试喜欢面(一般开发不用的,面试都喜欢面) lt = [15,-13,0,-88,97,31…
map()函数 map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把list 的每个元素依次作用在函数 f 上,得到一个新的 list 并返回. 例如,对于list [1, 2, 3, 4, 5, 6, 7, 8, 9] 如果希望把list的每个元素都作平方,就可以用map()函数,我们只需要传入函数f(x)=x*x,就可以利用map()函数完成这个计算: def f(x): return x*x print map(f, [1, 2, 3, 4, 5, 6…
Python中的高阶函数与匿名函数 高阶函数 高阶函数就是把函数当做参数传递的一种函数.其与C#中的委托有点相似,个人认为. def add(x,y,f): return f( x)+ f( y) print add(-18,11,abs) 它将这么执行: abs(-18) + abs(11) 结果则会是: 29 map()函数 map()是 Python 内置的高阶函数,它接收一个函数 f 和一个list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回.…