再看lambda/sorted/filter/map
- 
lambda表达式 这个函数用于一些简单的逻辑,请看下面这个例子: def func(x): return x ** 2上面这个函数逻辑很简单,对于我们来说,最重要的就是参数和返回值。正好lambda表达式应运而生: lambda 参数值:返回值因此对于第一个函数,可以改写成这样: func = lambda x:x**2 print(func(10))求两个数的和: # 定义函数 def sum(a,b): return a+b # lambda表达式 sum=lambda a,b:a+b
- 
sorted函数 语法:sorted(iterable,key=None,reverse=False)这里面key是一个函数 def func(item): return len(item) lst = ["欧阳东明", "刘伟", "刘能", "赵四", "王大拿", "赵瑞鑫"] res = sorted(lst, key=func) print(res)lst = ["欧阳东明", "刘伟", "刘能", "赵四", "王大拿", "赵瑞鑫"] res = sorted(lst, key=lambda item: len(item), reverse=True) print(res)key可以先写正常的函数,再改写成lambda表达式。 练习:按照年龄对学生信息排列 lst = [ {"id": 1, "name": "alex", "age": 18}, {"id": 2, "name": "test", "age": 19}, {"id": 3, "name": "dgf", "age": 17}, ] res = sorted(lst, key=lambda item: item['age']) print(res)练习:按照学生姓名长度进行排序 lst = [ {"id": 1, "name": "alex", "age": 18}, {"id": 2, "name": "tesqt", "age": 19}, {"id": 3, "name": "dgf", "age": 17}, ] res = sorted(lst, key=lambda item: len(item['name'])) print(res)
- 
filter筛选 语法:filter(function,iterable) function:用来筛选的函数,在filter中会自动把iterable中的元素传递给function。然后根据function返回的True或者False来判断是否保留此数据。# 筛选出大于18的数 lst = [11, 15, 18, 85, 45] res = filter(lambda item: item >= 18, lst) for el in res: print(el, end=' ')
- 
map映射 语法:map(funtion,iterable) # 可以对可迭代对象中的每一个元素进行映射,分别执行function。计算每个元素的平方: lst = [11, 15, 18, 85, 45] res = map(lambda x: x ** 2, lst) print(list(res))
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号