zoukankan      html  css  js  c++  java
  • Python_Mix*匿名函数,sorted,filter,map,递归函数,二分法查找

    • lambda匿名函数(函数名统一都叫lambda)
      • 为了解决简单的需求而设计的一句话函数
      • 语法:
        • lambda 参数 返回值
    • 1 n = lambda a,b: max(a,b)  
      2 ret = n(9,4)
      3 print(ret)
      • 注意:
        • 函数的参数可以有多个,多个参数之间用逗号隔开
        • 匿名函数只能写一行
        • 返回值和正常的函数一样,可以是任意数据类型
    • sorted( )排序函数
      • 语法
        • sorted(iterable,key=None,reverse=Flase)
    • 1 lst = [1,2,3,4,5,9,4,8,6,7]
      2 print(sorted(lst))
      3 
      4 #得到结果
      5 [1, 2, 3, 4, 4, 5, 6, 7, 8, 9]
      6 #没有key和reverse的值就是默认排序
        • iterable:可迭代对象
        • key:排序规则
        • reverse:是否是倒叙.True倒叙,False正序
    • 1 lst = [6,3,2,8,7,4,6,8,1,7,1,6,5,9,1,2]
      2 s = sorted(lst,reverse = True)  #True为倒叙
      3 print(s)
      4 
      5 #结果
      6 [9, 8, 8, 7, 7, 6, 6, 6, 5, 4, 3, 2, 2, 1, 1, 1]
      • 运行流程:
        • 把可迭代对象中的每一个元素交给后面key函数来执行,得到一个数字(权重),通过这个数字进行排序.
    • filter( )过滤函数
      • 把可迭代对象中的每一个元素交给前面的函数进行筛选,函数返回Trun或者False
      • 语法:
        • filter(function,iterable)
    • map( )映射函数
      • 把可迭代对象中的数据交给前面的函数进行执行,返回值就是map的处理结果
      • 语法:
        • map(function,iterable)
    • 递归
      • 函数自己调用自己(递归深度:最大1000,但是到不了1000就停了)
    • 二分法
      • 必须是有序序列才可以使用二分查找,每次能够排除掉一半的数据,查找的效率高
      • 核心:
        • 掐头去尾取中间,一次砍一半
      • 算法
        • 常规循环
        • 递归循环
    •  1 lst = [22, 33, 44, 55, 66, 77, 88, 99, 101 , 238 , 345 , 456 , 567 , 678 , 789]
       2 def func(n,left,right):   #
       3     if left <= right:
       4         mid = (left + right)//2
       5         if n > lst[mid]:
       6             left = mid+1
       7             return func(n,left,right)   #递归入口
       8         if n < lst[mid]:
       9             right = mid-1
      10             return func(n,left,right)   #递归入口
      11         if n == lst[mid]:
      12             print('找到了!')
      13             return mid          #通过return返回值,终止递归
      14     else:
      15         print('没有这个数~~')
      16         return -1
      17 ret = func(88,0,len(lst)-1)
      18 print(ret)        
  • 相关阅读:
    ES6判断对象是否为空
    mui、拍照、个推推送消息【问题链接】
    查找SAP某个Tcode下已经实施的增强
    MySQL 事务
    Go 学习线路图
    Nginx 限流配置
    Redis 内存优化
    2021年 github被墙最新hosts-每日更新
    Nginx 反向代理与负载均衡详解
    完美实现跨域 iframe 高度自适应
  • 原文地址:https://www.cnblogs.com/mixw/p/9481785.html
Copyright © 2011-2022 走看看