• 从入门到自闭之Python高阶函数


    高阶函数:内部帮忙做了一个for循环

    1. 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}]						
      
    2. 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]
      
      1. 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}]
      
    3. max():最大值

      print(max(10,3,4,5,2,6,76))		#输出  76
      print(max(10,3,4,5,2,-6,76),key= abs)
      
      1. min():最小值 #可迭代对象,key=指定规则
    4. reduce() :--计算,一层一层垒起来算,指定的函数方法必须接受两个形参

      print(reduce(lambda x,y:x+y,[1,2,3,4,5]))		#冒号等同于return,结果15
      
  • 相关阅读:
    wireshark抓包 TCP 字段详解
    youget使用教程
    JavaScript操作Oracle数据库
    WinForm导出文件,你懂的……
    Docker数据存储原理
    Dockerfile之CMD与ENTRYPOINT使用要点
    DevOps实战(Docker+Jenkins+Git)
    Python和Django web开发工具pycharm介绍
    连出两次
    python2.7发邮件小程序
  • 原文地址:https://www.cnblogs.com/heyulong1214/p/11528048.html
Copyright © 2020-2023  润新知