python相关知识点整理四(自己复习用)
filter, map, reduce
几句话就能讲明白
filter(function, iterable) 作用的是可迭代对象,list / tuple / dict / set / str
lists = ['11班01','11班02','12班02','13班02'] #可迭代对象 f = filter(lambda x: x.startswith('11班'),lists) #遍历lists,当11班01满足x的函数时,提取出来,存储在f变量中。 print(list(f)) #结果 ['11班01', '11班02']
当需要对一个列表进行一些计算并返回结果时,也就是一般用reduce是列表中的元素为int 或者 float。
from functools import reduce
l = [1,2,3,4,5] r = reduce( lambda x, y: x +y, l) #这个函数必须接收两个参数 print(r) #返回一个数字,而不是list
map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。
l = [1,2,3,4,5] l_s = map(lambda x: str(x),l) print(list(l_s)) #['1', '2', '3', '4', '5'] 遍历整个list,将函数作用在每个元素上。
l =['a','v','s'] l_s = map( lambda x: x.upper(),l) print(list(l_s)) #['A', 'V', 'S'] 全部变成大写