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)        
  • 相关阅读:
    合理配置SQL Server的最大内存
    理解内存----优化SQL Server内存配置
    Systems Performance: Enterprise and the Cloud 读书笔记系列
    google perftools分析程序性能
    源代码分析-构建调用图
    Intel VTune性能分析器基础
    代微机原理与接口技术(第3版)课程配套实验包和电子课件
    【MySQL性能优化】MySQL常见SQL错误用法
    Linux 内核分析 -- Linux内核学习总结
    《Linux就该这么学》 软件库
  • 原文地址:https://www.cnblogs.com/mixw/p/9481785.html
Copyright © 2011-2022 走看看