高阶函数:内部帮忙做了一个for循环
filter:筛选过滤
语法: filter(function,iterable) function: 1.指定过滤规则(函数的内存地址) 2.用来筛选的函数,在filter中会自动的把iterable中的元素传递给function,然后根据function返回的True或者False来判断是否保留此项数据 iterable:可迭代对象 ####写函数名切记不加括号 lst = [{'id':1,'name':'alex','age':18}, {'id':1,'name':'wusir','age':17}, {'id':1,'name':'taibai','age':16},] ls = filter(lambda e:e['age'] > 16,lst) print(list(ls)) 结果: [{'id': 1, 'name': 'alex', 'age': 18}, {'id': 1, 'name': 'wusir', 'age': 17}]
map():映射函数--将每个元素都执行了指定的方法(面试问)
print(list(map()))-- 格式 语法: map(function,iterable) 可以对可迭代对象中的每一个元素进映射,分别取执行function,计算列表中每个元素的平方,返回新列表 lst = [1,2,3,4,5] print(list(map(lambda s:s*s,lst))) 计算两个列表中相同位置的数据的和 lst1 = [1, 2, 3, 4, 5] lst2 = [2, 4, 6, 8, 10] print(list(map(lambda x, y: x+y, lst1, lst2))) 结果: [3, 6, 9, 12, 15]
- sorted : 排序函数,默认返回的是列表
语法:sorted(iterable,key=None,reverse=False) print(sorted([1,-22,3,4,5,6],key = abs)) #key指定排序规则,abs后不加括号 在sorted内部会将可迭代对象中的每一个元素传递给这个函数的参数.根据函数运算的结果进行排序 lst = [{'id':1,'name':'alex','age':18}, {'id':2,'name':'wusir','age':17}, {'id':3,'name':'taibai','age':16},] # 按照年龄对学生信息进行排序 print(sorted(lst,key=lambda x : list(x.values()))) # 值排序 print(sorted(lst,key=lambda e:e['age'])) 结果: [{'id': 3, 'name': 'taibai', 'age': 16}, {'id': 2, 'name': 'wusir', 'age': 17}, {'id': 1, 'name': 'alex', 'age': 18}]
max():最大值
print(max(10,3,4,5,2,6,76)) #输出 76 print(max(10,3,4,5,2,-6,76),key= abs)
- min():最小值 #可迭代对象,key=指定规则
reduce() :--计算,一层一层垒起来算,指定的函数方法必须接受两个形参
print(reduce(lambda x,y:x+y,[1,2,3,4,5])) #冒号等同于return,结果15