python高阶函数和匿名函数
2017-11-03 00:14
218 查看
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, 16, 25, 36, 49, 64, 81, 100]
2)reduce()函数:和map()类似,也是内置高阶函数,但函数f需接收两个变量;第二次调用把list中第一次处理的值(list中第1和第2个参数之和),当做第1个参数继续,依次类推
例子:
def add(x,y):
return x+y
list1=[1,2,3,4,5,6]
print reduce(add,list1)
结果:
21
3)filter()函数:类似map(),根据f函数返回的True或者False,过滤值,最后输出列表
例子:
def is_even(x):
return x%2 == 0
list1 = [1,2,3,4,5,6,7,8,9,10]
print filter(is_even,list1)
结果:
[2, 4, 6, 8, 10]
4) sorted()函数:返回一个经过排序的列表sorted(...) sorted(iterable, cmp=None, key=None,reverse=False) --> new sorted list
三个可选参数:
cmp:指定一个定制的比较函数,这个函数接收两个参数(iterable的元素),如果第一个参数小于第二个参数,返回一个负数;如果第一个参数等于第二个参数,返回零;如果第一个参数大于第二个参数,返回一个正数。默认值为None。
key:指定接收一个参数的函数,这个函数用于从每个元素中提取一个用于比较的关键字。默认值为None。
reverse:是一个布尔值。如果设置为True,列表元素将被倒序排列。
例子:mm = dict(a=1,b=3,c=2)print (mm)for i in mm: print (i)for j in mm.iteritems(): print(j)test = sorted(mm.iteritems(), key=lambda x:x[1])print(test)
结果:
{'a': 1, 'c': 2, 'b': 3}
a
c
b
('a', 1)
('c', 2)
('b', 3)
[('a', 1), ('c', 2), ('b', 3)]
说明:lambda x:x[1] 为匿名函数
2.匿名函数
没有名字,可以快速定义单行的最小函数
例子:
f = lambda x,y:x*y
print f(10,20)
结果:
200
把函数当成一个参数的函数
例子:
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, 16, 25, 36, 49, 64, 81, 100]
2)reduce()函数:和map()类似,也是内置高阶函数,但函数f需接收两个变量;第二次调用把list中第一次处理的值(list中第1和第2个参数之和),当做第1个参数继续,依次类推
例子:
def add(x,y):
return x+y
list1=[1,2,3,4,5,6]
print reduce(add,list1)
结果:
21
3)filter()函数:类似map(),根据f函数返回的True或者False,过滤值,最后输出列表
例子:
def is_even(x):
return x%2 == 0
list1 = [1,2,3,4,5,6,7,8,9,10]
print filter(is_even,list1)
结果:
[2, 4, 6, 8, 10]
4) sorted()函数:返回一个经过排序的列表sorted(...) sorted(iterable, cmp=None, key=None,reverse=False) --> new sorted list
三个可选参数:
cmp:指定一个定制的比较函数,这个函数接收两个参数(iterable的元素),如果第一个参数小于第二个参数,返回一个负数;如果第一个参数等于第二个参数,返回零;如果第一个参数大于第二个参数,返回一个正数。默认值为None。
key:指定接收一个参数的函数,这个函数用于从每个元素中提取一个用于比较的关键字。默认值为None。
reverse:是一个布尔值。如果设置为True,列表元素将被倒序排列。
例子:mm = dict(a=1,b=3,c=2)print (mm)for i in mm: print (i)for j in mm.iteritems(): print(j)test = sorted(mm.iteritems(), key=lambda x:x[1])print(test)
结果:
{'a': 1, 'c': 2, 'b': 3}
a
c
b
('a', 1)
('c', 2)
('b', 3)
[('a', 1), ('c', 2), ('b', 3)]
说明:lambda x:x[1] 为匿名函数
2.匿名函数
没有名字,可以快速定义单行的最小函数
例子:
f = lambda x,y:x*y
print f(10,20)
结果:
200
相关文章推荐
- Python进阶:函数式编程(高阶函数,map,reduce,filter,sorted,返回函数,匿名函数,偏函数)...啊啊啊
- 匿名函数python内置高阶函数以及递归
- 16. Python 高阶函数、匿名函数
- Python小白学习之路(十四)—【作用域】【匿名函数】【编程方法论】【高阶函数】
- Python(十) 函数式编程: 匿名函数、高阶函数、装饰器
- python(七)高阶函数,匿名函数
- Python中的高阶函数与匿名函数
- python(七)高阶函数,匿名函数
- python--函数式编程 (高阶函数(map , reduce ,filter,sorted),匿名函数(lambda))
- python的高阶函数与匿名函数
- python的嵌套函数,递归,匿名函数,函数式编程,高阶函数,内置函数
- Python-高阶函数及匿名函数
- python 函数进阶:参数传递,高阶函数,lambda 匿名函数,global 变量,递归
- Python 高阶函数:匿名函数
- Python学习 Day 5 高阶函数 map/reduce filter sorter 返回函数 匿名函数 装饰器 偏函数
- Python 函数式编程(高阶函数、把函数作为参数、map()函数、reduce()函数、filter()函数、自定义排序函数、函数返回函数、闭包、匿名函数、装饰器decorator)
- python函数-高阶函数和匿名函数
- python高阶函数和匿名函数
- python函数基础:嵌套函数、作用域、匿名函数、高阶函数、递归函数
- python高阶函数和匿名函数