人生与戏

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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

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('\n')

list_two = "36742884"
print('排序前:',list_two)
b = sorted(list_two,key=int)
print('排序后:',b)

 

posted on 2019-08-02 00:03  人生与戏  阅读(174)  评论(0编辑  收藏  举报