filter函数的第一个输入是一个返回值为boolean的函数名,第二个是一个可迭代类型,返回值和map函数一样,是个迭代器
telma = ["Chris", "John","Jack","Tom"]
res = filter(lambda x:x.startswith("J"),telma)
print(list(res))
['John', 'Jack']
[{'name': 'Jerry', 'age': 20}, {'name': 'Tom', 'age': 19}]
telma = [{"name":"Jack","age":18},{"name":"John","age":18},{"name":"Jerry","age":20},{"name":"Tom","age":19}]
res = filter(lambda x:x["age"]>18,telma)
print(list(res))
map是遍历一个序列按照一个function全部执行一遍,返回同长度的序列,元素位置也一样,filter是遍历一个序列按照条件取序列的子集,reduce函数是把一个序列最终合并操作算出一个值来
from functools import reduce
telma =[1,3,5,7,9]
res=reduce(lambda x,y:x+y,telma,10) #10为初始值,可以没用
print(res)
res1=reduce(lambda x,y:x+y,telma)
print(res1)
35 25