高阶函数与与匿名函数
来源:互联网 发布:电子实验室软件 编辑:程序博客网 时间:2024/06/06 23:50
高阶函数
#就是把函数当成参数传递的一种函数
def add(x,y,f):
return f(x)+f(y)
print (add(-8,11,abs))
19
#map()函数
#map()是一个内置函数,他接受一个函数f和一个list或者tuple,并且将里面的元素传递给函数f,最后交给map()函数处理,并且返回一个列表
#map()函数第一个参数是函数,第二个参数是可迭代对象
lt =[1,2,3,4,5]
def f2(x):
return x*x
m1=map(f2,lt)
print(type(m1))
print (m1)
type ‘list’
[1, 4, 9, 16, 25]
#reduce()函数
#传入的函数必须接受两个参数
#每次把可迭代对象的前两个参数作为函数的实参,传入到f函数中
#把每次前两个元素的运算的结果作为第一个实参,继续与下一个参数做运算,直到读完元素
def f(x,y):
return x+y
print (reduce(f,[1,2,3,4,5],10))
25
#filter()函数
#每次把可迭代对象的元素传入进去,如果返回为True,则保留该元素,如果返回为False,则不保留
a =[1,2,3,4,5,6]
def is_odd(x):
return x%2 ==1
print(filter(is_odd,a))
[1, 3, 5]
#sorted()函数
#对字典进行排序
#sorted(…)
# sorted(iterable, cmp=None, key=None, reverse=False) –> new sorted list
#iterable:是可迭代类型;
# cmp:用于比较的函数,比较什么由key决定;
# key:用列表元素的某个属性或函数进行作为关键字,有默认值,迭代集合中的一项;
# reverse:排序规则. reverse = True 降序 或者 reverse = False 升序,有默认值。
# 返回值:是一个经过排序的可迭代类型,与iterable一样。
mm=dict(a=1,c=4,b=10,d=9)
#按照key值升序,返回一个列表
test1 = sorted(mm.iteritems(),key =lambda d:d[0],reverse=False)
#按照value值升序,返回一个列表
\test = sorted(mm.iteritems(),key =lambda d:d[1],reverse=False)
print test1
print test
[(‘a’, 1), (‘b’, 10), (‘c’, 4), (‘d’, 9)]
[(‘a’, 1), (‘c’, 4), (‘d’, 9), (‘b’, 10)]
匿名函数
#没有名字的函数
def sum(x,y):
return x+y
print (sum(1,5))
#下面就是匿名函数,结果跟上面一样都为6
#匿名函数方便使用,其实不常用
m = lambda x,y:x+y
print (m(1,5))
6
6
#就是把函数当成参数传递的一种函数
def add(x,y,f):
return f(x)+f(y)
print (add(-8,11,abs))
19
#map()函数
#map()是一个内置函数,他接受一个函数f和一个list或者tuple,并且将里面的元素传递给函数f,最后交给map()函数处理,并且返回一个列表
#map()函数第一个参数是函数,第二个参数是可迭代对象
lt =[1,2,3,4,5]
def f2(x):
return x*x
m1=map(f2,lt)
print(type(m1))
print (m1)
type ‘list’
[1, 4, 9, 16, 25]
#reduce()函数
#传入的函数必须接受两个参数
#每次把可迭代对象的前两个参数作为函数的实参,传入到f函数中
#把每次前两个元素的运算的结果作为第一个实参,继续与下一个参数做运算,直到读完元素
def f(x,y):
return x+y
print (reduce(f,[1,2,3,4,5],10))
25
#filter()函数
#每次把可迭代对象的元素传入进去,如果返回为True,则保留该元素,如果返回为False,则不保留
a =[1,2,3,4,5,6]
def is_odd(x):
return x%2 ==1
print(filter(is_odd,a))
[1, 3, 5]
#sorted()函数
#对字典进行排序
#sorted(…)
# sorted(iterable, cmp=None, key=None, reverse=False) –> new sorted list
#iterable:是可迭代类型;
# cmp:用于比较的函数,比较什么由key决定;
# key:用列表元素的某个属性或函数进行作为关键字,有默认值,迭代集合中的一项;
# reverse:排序规则. reverse = True 降序 或者 reverse = False 升序,有默认值。
# 返回值:是一个经过排序的可迭代类型,与iterable一样。
mm=dict(a=1,c=4,b=10,d=9)
#按照key值升序,返回一个列表
test1 = sorted(mm.iteritems(),key =lambda d:d[0],reverse=False)
#按照value值升序,返回一个列表
\test = sorted(mm.iteritems(),key =lambda d:d[1],reverse=False)
print test1
print test
[(‘a’, 1), (‘b’, 10), (‘c’, 4), (‘d’, 9)]
[(‘a’, 1), (‘c’, 4), (‘d’, 9), (‘b’, 10)]
匿名函数
#没有名字的函数
def sum(x,y):
return x+y
print (sum(1,5))
#下面就是匿名函数,结果跟上面一样都为6
#匿名函数方便使用,其实不常用
m = lambda x,y:x+y
print (m(1,5))
6
6
阅读全文
0 0
- 高阶函数与与匿名函数
- 高阶函数与与匿名函数
- 高阶函数与匿名函数
- LISP 5.8-5.9 高阶函数与匿名函数
- CommonLisp(三)---高阶函数与匿名函数(lambda演算)
- 匿名函数与高阶函数的使用
- 匿名函数与递归
- 匿名函数与lambda
- 内联函数与匿名函数
- Scala 函数与匿名函数
- Scala函数式编程进阶(匿名函数、高阶函数、函数类型推断、Currying)与Spark源码鉴赏
- !!scala 高阶函数,匿名函数
- 高阶函数和匿名函数
- Python高阶函数及匿名函数
- Python-高阶函数及匿名函数
- 匿名函数与lamdba表达式
- c# 匿名函数与委托
- JavaScript匿名函数与委托
- MyBatis由浅入深学习总结之二:MyBatis解决Java实体类和数据库表字段不一致方法总结
- Genymotion启动报错:the virtual device got no ip address
- BZOJ1693: [Usaco2007 Demo]Asteroids
- 动手实践:在Windows上安装NumPy、Matplotlib、SciPy
- 使用JavaMail的Java邮件发送
- 高阶函数与与匿名函数
- (Android集成支付宝支付)react-native实现支付宝支付
- 程序员,30岁,如何趁 AI 浪潮突破年薪天花板?
- Fragment切换 隐藏 显示
- 敏捷测试的“要”与“不要”-- 朱少民
- 软件设计管理工具 visual paradigm 社区版
- 接口测试相关学习xml和json
- archlinux升级内核后virtualbox不能启动虚拟机
- SLAM学习笔记(二)数据采集