python之6-2高阶函数

1. map函数

  • map(函数A,字符串或者列表)
  • map函数的意思是将函数A依次作用到字符串的每个字符或者列表的每个元素.
  • 例如:
map(lambda x: x*x,[1,2])
[1, 4]

这里lambda是匿名函数,匿名函数的作用就是不用定义函数名.
格式:lambda 参数: exp
关于map函数,其实用的并不是太多,因为可以用列表解析来写,例如上面的等价于[x*x for x in range(1,3)]

2. reduce函数

  • reduce(函数A,字符串或者列表)
  • reduce函数的意思是将函数A依次作用到字符串的2个字符或者列表的2个元素.
  • 例如:
>>> reduce(lambda x,y: x+y,[1,2,3,4])
10

假设匿名函数名为a,那么上面就等价于 a(a(a(1,2),3),4)

3. sorted函数

  • 作用:比较字符串或者数值大小
  • 格式:sorted(列表,函数)
  • 例子:
def cmp_ignore_case(s1, s2):
    u1 = s1.upper()
    u2 = s2.upper()
    if u1 < u2:
        return -1
    if u1 > u2:
        return 1
return 0
>>> sorted([‘about‘, ‘bob‘, ‘Zoo‘, ‘Credit‘], cmp_ignore_case)
[‘about‘, ‘bob‘, ‘Credit‘, ‘Zoo‘]

4. 模拟map()函数

  • map()函数需要接收两个参数,一个函数参数,一个列表
def my_map( f, l ):
    print [ f(x) for x in l ]
def f1( x ):
    return x * x
my_map( f1, [ 1, 2, 3, 4, 5 ] )

python之6-2高阶函数

时间: 2024-09-30 20:48:36

python之6-2高阶函数的相关文章

python入门16 递归函数 高阶函数

递归函数:函数内部调用自身.(要注意跳出条件,否则会死循环) 高阶函数:函数的参数包含函数 递归函数 #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

python内置常用高阶函数(列出了5个常用的)

原文使用的是python2,现修改为python3,全部都实际输出过,可以运行. 引用自:http://www.cnblogs.com/duyaya/p/8562898.html https://blog.csdn.net/cv_you/article/details/70880405 python内置常用高阶函数: 一.函数式编程 •函数本身可以赋值给变量,赋值后变量为函数: •允许将函数本身作为参数传入另一个函数: •允许返回一个函数. 1.map()函数 是 Python 内置的高阶函数,

python函数式编程之高阶函数学习

基本概念 函数式编程,是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量.因此,任意一个函数,只要输入确定,输出就确定的这种函数我们称之为纯函数,我们称这种函数没有副作用.而允许使用白变量的程序设计语言,由于函数内部的变量状态是不确定的,同样的输入可能有不同的输出,我们称这种函数为有副作用的. 函数式编程的一个特点就是,允许把函数本身作为参数传递给另一个函数,还允许返回一个函数! Python对函数式编程提供部分支持.由于Python允许使用变量,因此,Python不是纯函数式

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

1 #函数式编程 2 #函数式编程一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数 3 #(一)高阶函数 4 5 f=abs 6 f 7 print(f(-20)) 8 #结果 20 9 #函数可以赋值给一个变量,即:变量可以指向函数 10 #那么函数名是什么?函数名其实就是指向函数的变量! 11 12 #下面的代码,执行后,abs已经不指向求绝对值函数而是一个整数10了. 13 #后面的abs(-10)将报错,无法执行,必须重启python才可以. 14 #abs=10

二、Python开发---13、高阶函数与内置函数

常用高阶函数 #map list01 = [1,3,5,7,9] new_list01=map(lambda x:x*2,list01) print(list(new_list01)) #输出为[2, 6, 10, 14, 18] 将map对象转换为list list02 = [2,4,6,8,10] new_list02 = map(lambda x,y:x*y,list01,list02) print(new_list02) #<map object at 0x0000000001F0A51

python六十课——高阶函数之map

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):执行过

七. python进阶(内置高阶函数)

一. 内置高阶函数 高阶函数 函数接收的参是一个函数名 返回值包含函数 把函数当作一个参数传给另一个函数 def a(n): print(n) def b(name): print('my name is 哈哈哈') a(b('111111111111111111111111111111111')) # my name is 哈哈哈 # None def a(n): print(n) #<function b at 0x000002EAA7B43E18> def b(): print('my

python六十一课——高阶函数之reduce

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] '

【速学速记】Python 高阶函数

前言: python 迅速发展壮大起来,多亏了人工智能,AI ,机器学习,深度学习的发展.所以小的给各位看官们准备了收藏已久的视频教程分享给大家!希望能带给大伙儿一些学习上的帮助 觉得好的话可以多多关注哟~ 每天持续分享更多优质内容! · 正 · 文 · 来 · 啦 · 今天花三分钟时间学习python的核武器:高阶函数 函数名也是变量! abs(-100) 对于abs()这个函数,完全可以把函数名abs看成变量,它指向一个计算绝对值的函数! 因此,函数名其实就是指向函数的变量,也就是说,变量可

高阶函数和装饰器

函数式:一种编程范式 纯函数式编程:没有变量,支持高阶函数编程 Python不是纯函数式编程语言,支持高阶函数编程 变量可以指向函数,函数名就是指向函数的一个变量,与普通变量没有区别 高阶函数:能接收函数做参数的函数. map():是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回. def f(x): return x*x print map(f, [1, 2, 3, 4, 5, 6, 7