python高阶函数和匿名函数

高阶函数

允许将函数本身作为参数传入另一个函数;允许返回一个函数。允许返回一个函数。

map()函数

map的第一个参数为自定义函数,第二个参数为自定义可迭代对象

例子

#定义一个函数f2求平方,使用map函数,求list1的值的平方,list1平方规则按照f2函数执行,返回结果类型为list。

list1 = [1, 2, 3, 4, 5,]

def f2(x):

return x*x

list2 = map(f2, list1)

print type(list2)

print list2

reduce()函数

必须接收两个参数,最多接收三个参数。

例子

#定义一个函数f求和,使用reduce函数,求list1相加的值,再加20。list1相加规则按照f函数执行,先执行1+2,再用1+2的值与3相加,以此类推

list1 = [1, 2, 3, 4, 5,]

def f(x, y):

return x+y

print reduce(f,list1,20)

filter()函数

会将可迭代对象元素传入,如果返回true则保留,如果返回false则不保留元素

例子:

a = [1, 2, 3, 4, 5, 6, 7]

def f(x):

return x%2 == 1

b = list(filter(f,a))

#python3.5.1需要将filter转换为list再进行输出

print (b)

sorted()函数

可以针对所有的可迭代对象进行排序,返回一个新的list

使用方法:

sorted(...)

sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list

cmp:有两个参数,参数的值都是从可迭代对象中取出,此函数的规则:大于返回1,小于返回-1,等于返回0

key:具体的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素进行排序

reverse:判断是否反转,默认情况下不反转

例子

dic1 = {‘Q‘:7, ‘W‘:8, ‘E‘:9}

print(dic1)

for key, value in dic1.items():

print(key, value)

d = sorted(dic1.items())

print(d)

匿名函数

不需要显示定义的函数,没有名字的函数

例子

def f2(x,y):

return x+y

等于

c = lambda x1,y1:x1+y1

print(c(4,5))

例子

def build(x2, y2):

return lambda: x2 * x2 + y2 * y2

时间: 2024-10-23 12:44:33

python高阶函数和匿名函数的相关文章

python 高阶函数详解。

1,概念: Iterable 和 IteratorIterable 表示该变量可以被 for in 进行迭代.Iterator 表示该变量可以被 next(o)进行迭代(上一个表示有限迭代,下一个表示一个惰性的迭代概念,可以无限迭代.)一般的Iterable 的变量有:L=[{},[],(1,),{3:4},{3,4}]for x in L:print(isinstance(x,Iterable))print(isinstance(x,Iterator)) truefalse 可见,基础变量Li

高阶函数和匿名函数

1.高阶函数 把函数当成一个参数的函数 例子: abs函数作为一个参数 def add(a,b,f): return f(a) + f(b) print (add(10,-10,abs)) 结果: 20 常用内置高阶函数 1)map()函数:接收一个函数和列表,并将列表的值传给函数,最后将结果以列表形式输出 例子: def power(x): return x*x list1=[1,2,3,4,5,6,7,8,9,10] print map(power,list1) 结果: [1, 4, 9,

Python高阶函数_map/reduce/filter函数

本篇将开始介绍python高阶函数map/reduce/filter的用法,更多内容请参考:Python学习指南 map/reduce Python内建了map()和reduce()函数. 如果你读过Google的那篇大名鼎鼎的论文"MapReduce: Simplified Data Processing on Large Clusters",你就能大概明白map/reduce的概念. 我们先看map.map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序

python高阶函数的使用

目录 python高阶函数的使用 1.map 2.reduce 3.filter 4.sorted 5.小结 python高阶函数的使用 1.map Python内建了map()函数,map()函数接受两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每一个元素上,并把结果作为新的Iterator返回. 举例说明,比如我们有一个函数f(x)=x*2,要把这个函数作用在一个list[1, 2, 3, 4, 5, 6, 7, 8, 9]上,就可以用map()实现. >>

python之内置函数、匿名函数、递归

一.内置函数 内置函数详解:http://www.runoob.com/python/python-built-in-functions.html 二.匿名函数 匿名函数就是不需要显式的指定函数 1 #这段代码 2 def calc(n): 3 return n**n 4 print(calc(10)) 5 6 #换成匿名函数 7 calc = lambda n:n**n 8 print(calc(10)) 特点: 1.lambda只是一个表达式,函数体比def简单很多 2.lambda的主体是

python内置函数、匿名函数、递归

一.内置函数 内置函数详解:http://www.runoob.com/python/python-built-in-functions.html 二.匿名函数 匿名函数就是不需要显示的指定函数 #这段代码 def calc(n): return n**n print(calc(10)) #换成匿名函数 calc = lambda n:n**n print(calc(10)) l=[3,2,100,999,213,1111,31121,333] print(max(l)) dic={'k1':1

Python 基础第十四天(内置函数和匿名函数)

今天主要内容 1.生成器补充--生成器推导式 2.内置函数 3.匿名函数 1.生成器推导式 (1)列表推导式:一行搞定 ,简单,感觉高端.但是,不易排错. 例: l1 = [] for i in range(1,12):  l1.append('python%s期' % i) print(l1) 生成式: l2 = ['python%s期' %i  i  for i in range(1,12)] print(l2) 结构: 循环模式[经过加工的i for i in 可迭代对象] 筛选模式 [经

python之迭代器生成器和内置函数,匿名函数

今天学习了迭代器生成器以及内置函数和匿名函数,说实话有些懵圈,有些难度了. 一.迭代器和生成器 1.如何从列表.字典中取值的: index索引 for循环 凡是可以使用for循环取值的都是可迭代的 (1)可迭代协议:内部含有__iter__方法的都是可迭代的 (2)迭代器协议:内部含有__iter__方法和__next__方法的都是迭代器 什么是可迭代的:内部含有__iter__方法的都是可迭代的 什么是迭代器:迭代器=iter(可迭代的),自带一个__next__方法 可迭代最大的优势:节省内

python内置函数及匿名函数

locals  本地作用域/局部作用域 会随着位置的改变而改变globals 全局作用域           永远不变 永远是全局 a = 1 b = 2 print(locals()) print(globals()) def func(): c = 3 d = 4 print(locals()) def func2(): l1 = [] d1 = {} print(locals()) #无论在哪里打印 得到的都是全局作用域中的名字 func() func2() # 结果 # {'__name

python——内置函数和匿名函数

内置函数 接下来,我们就一起来看看python里的内置函数.截止到python版本3.6.2,现在python一共为我们提供了68个内置函数.它们就是python提供给你直接可以拿来使用的所有函数.这些函数有些我们已经用过了,有些我们还没用到过,还有一些是被封印了,必须等我们学了新知识才能解开封印的.那今天我们就一起来认识一下python的内置函数.这么多函数,我们该从何学起呢?     Built-in Functions     abs() dict() help() min() setat