python_笔记10_高阶函数

 
#coding:utf-8
def add(x,y,fun):
	return fun(x)+fun(y)
	
print add(-4,5,abs)

map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。

由于list包含的元素可以是任何类型,因此,map() 不仅仅可以处理只包含数值的 list,事实上它可以处理包含任意类型的 list,只要传入的函数f可以处理这种数据类型。

def fun(x):
	return x*x
>>>map(fun,[1,2,3,4])

高阶函数让首字母大写   map()

#coding:utf-8
import math
def upperLetter(str):
	return str[0].upper()+str[1:].lower()
	
print map(upperLetter,['zys','zzz','haha'])

reduce()函数

先计算头两个元素:f(1, 3),结果为4;
再把结果和第3个元素计算:f(4, 5),结果为9;
再把结果和第4个元素计算:f(9, 7),结果为16;
再把结果和第5个元素计算:f(16, 9),结果为25;
由于没有更多的元素了,计算结束,返回结果25。

#coding:utf-8
import math
def add(x,y):
	return x+y
	
print reduce(add,[1,2,3],100)
filter()函数

filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。

#coding:utf-8
import math
def get_odd(x):
	return x % 2 == 1
	
print filter(get_odd,[1,2,3,4,5])
过滤1-100的平方还是整数

#coding:utf-8
import math
def is_int(x):
	return math.sqrt(x) % 1 == 0
	
print filter(is_int,range(101))


sorted()倒叙排序

#coding:utf-8
def reversed_cmp(x,y):
	if x>y:
		return -1
	if x<y:
		return 1
	return 0

print sorted([3,1,5,1,2,5,7,-3],reversed_cmp)


python 返回函数

#coding:utf-8
def f():
	print 'f fun'
	def g():
		print 'g fun'
	return g

x = f()
x()


接受list,返回一个函数对象,计算list中的乘积

#coding:utf-8
def calc_prod(lst):
	def f():
		sum = 1
		for x in lst:
			sum *= x
		return sum
	return f	
	
fun = calc_prod([1,3,5])
print fun()
	




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值