6.1内置函数
6.1.1 filter函数
6.1.2 map函数
6.1.3 reduce函数
6.1.1:filter (函数名字, 序列) 过滤器对象
filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list
# 过滤列表中名称是xiong的字符串
name=["xiong","yuan"] def fi(n): if n!="xiong": return n let=filter(fi,name) print(list(let)) # 结果 [‘yuan‘]
# 再比如过滤掉数字为奇数的行
def number(n): if n %2 ==1: return n jnum=filter(number,range(1,20)) # 过滤对象内存地址:<filter object at 0x000000000250F828> print(list(jnum)) # 打印结果就是:[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
6.1.2 map (函数名字, 序列)
map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。
map()函数是python内置的高阶函数,对传入的list的每一个元素进行映射,返回一个新的映射之后的list
def x(f): return f*f #从9开始每次相乘 num=map(x,range(9)) print(list(num)) 0 1 2 3 4 5 6 7 8 每个值都乖以自己
# 结果: 等于就是每个值的平方 [0, 1, 4, 9, 16, 25, 36, 49, 64]
注意:map()函数不改变原有的 list,而是返回一个新的 list。
由于list包含的元素可以是任何类型,因此,map() 不仅仅可以处理只包含数值的 list,事实上它可以处理包含任意类型的 list,只要传入的函数f可以处理这种数据类型。
x=["ali","jic","you"] def name(x): return "a" + x na=map(name,x) # 跟filter差不多,但如果将map改为filter那么它返回的结果就是ali,jic,you print(list(na)) # 结果: [‘aali‘, ‘ajic‘, ‘ayou‘]
# 扩展信息: http://www.cnblogs.com/superxuezhazha/p/5714970.html
6.1.3 reduce(函数,对象或序列)
reduce() # 想用这个方法必须加上如下参数 reduce的结果就是一个值
from functools import reduce lambda a,b: a + b ## 示例 先调用这个函数 from functools import reduce # add = lambda a,b: a+b # print(add(1,2)) # 结果3 def add1(x,y): return x + y print(reduce(add1,range(10))) # 结果45
时间: 2024-10-14 09:43:38