zoukankan      html  css  js  c++  java
  • 内置函数--重点

    lambda匿名函数

    语法 : 函数名 = lambda 参数 : 返回值

    tips: 1.函数的参数可以有多个,多个参数之间用逗号隔开

       2.匿名函数不管有多复杂.只能写一行,且逻辑结束后直接返回数据

       3.返回值和正常的函数一样,可以任意数据类型

    sorted() 排序函数

    语法 : sorted( Iterable , key = None , reverse = False )

      Iterable : 可迭代对象

      key : 排序规则(排序函数) , 在sorted内部会将可迭代对象中的内一个元素传递给这个函数的参数.根据函数运算的结果进行排序  可以和lambda组合使用 : sorted(lst , key = lambda s : len(s))

      reverse : 是否倒序 True : 倒序 False : 正序

    filter() 筛选函数

     语法: filter(function. Iterable) 

    function : 用来筛选的函数.根据返回True or False判断是否保留此项数据

    Iterable : 可迭代对象

    map() 映射函数

    语法: map(function , iterable)   对每个元素执行function返回新列表

    递归 

    在函数中调用函数本身,就是递归(python中递归的深度最大到998)

    递归的应用 (遍历树形结构如文件夹系统):

    import os
    
    def read(filepath , n):
        files = os.listdir(filepath)    #获取到当前文件夹中的所有文件
        for i in files :                     #遍历文件夹,获取所有文件名
            i_dir = os.path.join(filepath, i)
            if os.path.isdir(i_dir):     #如果该路径下是文件夹     
                print('	'*n, i)
                read(i_dir, n+1)
            else:
                print('	'*, i)              #递归出口,隐含return    

    二分法查找

    查找的序列必须是有序序列, 每次能够排除掉一般数据,查找效率高

    方法一 :

     1 lst = [1, 2 ,5 ,34 ,56 ,89 ,120]
     2 n = int(input('请输入一个数: '))
     3 left = 0
     4 right = len(lst) - 1
     5 while left <= right:
     6     mid = (left + right)//2
     7     if n > lst[mid]:
     8         left = mid + 1
     9     elif n < lst[mid]:
    10         right = mid - 1
    11     else:
    12         print('数字存在')
    13         break
    14 else:
    15     print('数字不存在')

    方法二 :

    def func(n, lst, left, right):
        if left <= right:
            mid = (left + right) // 2
            if n > lst[mid]:
                left = mid + 1
                return func(n, lst, left, right)
            elif n < lst[mid]:
                right = mid - 1
                return func(n, lst, left, right)
            else:
                print('找到了')
                return mid
        else:
            print('找不到')
            return -1
    
    n = int(input('请输入一个数: '))
    lst = [1, 3, 5, 24, 45, 56, 109]
    ret = func(n, lst, 0, len(lst)-1)
    print(ret)
  • 相关阅读:
    Failed to load resource: the server responded with a status of 413 (Request Entity Too Large)
    钱能解决的都是小事——北漂18年(78)
    mysql 排序
    innodb和myisam表排序
    perl 内部字节字符转换
    encode_json 转换给定的perl数据结构为一个UTF-8编码的 2进制字符串 decode_json把UTF-8字节转换成字符
    perl /g
    perl 循环截取字符串
    eclipse报错:Compilation unit name must end with .java, or one of the registered Java-like exten
    用 Flask 来写个轻博客 (30) — 使用 Flask-Admin 增强文章管理功能
  • 原文地址:https://www.cnblogs.com/gracenana/p/10198079.html
Copyright © 2011-2022 走看看