zoukankan      html  css  js  c++  java
  • Python高阶函数

    高阶函数:有函数作为参数  或  将函数作为返回值。

    1. 效果图:

    2.代码

    # 创建一个列表
    list_one = [1,2,3,4,5,6,7,8,9,10]
    
    def fn(func , lst) :
    
        '''
            fn()函数可以将指定列表中的所有偶数获取出来,并保存到一个新列表中返回
    
            参数:
                lst:要进行筛选的列表
        '''
        # 创建一个新列表
        new_list = []
    
        # 对列表进行筛选
        for n in lst :
            # 判断n的奇偶
            if func(n) :
                new_list.append(n)
            # if n > 5 :
            #     new_list.append(n)
    
        # 返回新列表
        return new_list
    
    print(fn(fn2 , list_one))  #  [2, 4, 6, 8, 10]
    print(fn(fn3 , list_one))  #  [6, 7, 8, 9, 10]
    print(fn(fn4 , list_one))  #  [3, 6, 9]
    # 定义一个函数,用来检查一个任意的数字是否是偶数
    def fn2(i) :
        if i % 2 == 0 :
            return True
    
        return False
    
    # 这个函数用来检查指定的数字是否大于5
    def fn3(i):
        if i > 5 :
            return True    
        return False
    
    # 被3整除的数
    def fn4(i):
        return i % 3 == 0
    
    print(3%3==0)

    优化上述代码效果图:

     优化代码:

    # filter() : 从序列中过滤出符合条件的元素,保存到一个新序列中。 不是一个序列。
    # 参数:
    #   1.函数,根据该函数来过滤序列(可迭代的结构) 过滤条件
    #   2.需要过滤的序列(可迭代的结构)             过滤序列
    
    # 创建一个列表
    list_one = [1,2,3,4,5,6,7,8,9,10]
    
    # 被3整除的数
    def fn4(i):
        return i % 3 == 0
    
    r = filter(fn3,list_one)
    print(r,type(r))
    print(list(r))

     再次优化:

        效果图

    # lambdah函数
    # 作用: 用来创建简单的函数
    # 语法: lambda 参数列表 : 返回值
    
    # 原来的写法:
    def fn5(a,b):
        return a + b
    
    print(fn5(2,6))
    
    # 现在的写法:
    print((lambda a,b : a + b)(2,6))

    filter() 和 lambda函数结合优化:

        效果图:

    list_one = [1,2,3,4,5,6,7,8,9,10]
    
    r = filter(lambda i : i > 5 , list_one)
    print(list(r))

     map()函数效果图:

      对列表list_one中的每个元素进行加 1  。

     map()函数代码:

    # map()函数
    # 作用:对可遍历(迭代)对象中的所有元素做指定的操作,返回新对象
    list_one = [1,2,3,4,5,6,7,8,9,10]
    print("list_one",list_one)
    r = map(lambda i : i + 1 , list_one)
    print("r",r,list(r))

    sort()方法  效果图一:    1.字符串的长度 比较  2.字母的Unicode值比较

       语法: 列表名.sort()

    sort()方法  代码一:

    # sort()方法    会改变列表
    # 作用:对列表中的元素排序  , 默认比较大小  ,字母比较Unicode大小
    # sort()可以接收一个关键字参数, key
    #    key需要一个函数作为参数,当设置函数作为参数
    #    每次会以列表中的一个元素作为参数来调用函数,并且使用函数的返回值来比较元素的大小
    list_one = ['ab','ba','c','dc']
    # 检查下会不会改变list_one列表
    a = list_one.sort(key=len)
    print(list_one)
    print(a)

    sort()方法  效果图二:  值比较

    sort()方法 代码二:

    list_one = [2,6,'3',7,'8']
    list_one.sort(key=int)
    print(list_one)

     sorted()函数   语法: sorted(序列名,key=排序方式)

      效果图:

      代码:

    # sorted()函数    不会改变原对象,返回一个新对象
    # 作用: 对任意的序列进行排序
    # 语法: sorted(序列名, key = 排序方式)
    #print(help(sorted))
    
    list_one = [3,5,'8',1,'2']
    print('排序前:',list_one)
    a = sorted(list_one,key=int)
    print('排序后:',a)
    
    print('
    ')
    
    list_two = "36742884"
    print('排序前:',list_two)
    b = sorted(list_two,key=int)
    print('排序后:',b)
  • 相关阅读:
    javaSE第十五天
    javaSE第十四天
    javaSE第十三天
    javaSE第十二天
    javaSE第十一天
    javaSE第十天
    javaSE第九天
    python011 Python3 字典
    python010 Python3 元组
    python009 Python3 列表
  • 原文地址:https://www.cnblogs.com/FlyingLiao/p/11286183.html
Copyright © 2011-2022 走看看