zoukankan      html  css  js  c++  java
  • python进阶(1)Lambda表达式

    Lambda表达式

    lambda表示的是匿名函数,不需要用def来声明,一句话就可以声明出一个函数
     

    语法

    函数名 = lambda 参数:返回值
     

    注意点

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

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

    • 3.返回值和正常的函数一样,可以是任意数据类型,返回值的时候只能返回一个不能返回多个

    def func(n):
        return n**n
    print(func(4))
    f = lambda x: x**x
    print(f(4))
    结果:
    >>> 256
    >>> 256
    

    三大基础函数

    filter(function, iterable)

    对可迭代对象进行过滤,参数function是一个函数,参数iterable是可迭代对象。filter()函数调用时iterable会遍历,它的元素被逐一传入funciton函数,function函数返回布尔值。在funciton函数中编写过滤条件,如果为true则保留,为false则被过滤掉

    number_list = range(1, 11)
    number_filter = filter(lambda it: it % 2 == 0, number_list)
    print(list(number_filter))
    >>> [2, 4, 6, 8, 10]
    

    map(function, iterable)

    对可迭代对象的元素进行变换,参数使用同上

    # 将所有元素替换成小写
    users = ['jack', 'Tom', 'Tony', 'Alice']
    users_map = map(lambda u: u.lower(), users)  
    print(list(users_map))
    >>> ['jack', 'tom', 'tony', 'alice']
    
    # 将所有首字母为T的元素替换成小写
    # 先过滤再替换
    users = ['jack', 'Tom', 'Tony', 'Alice']
    users_map = map(lambda u: u.lower(), filter(lambda u: u.startswith('T'), users))
    print(list(users_map))
    >>> ['tom', 'tony']
    

    reduce(function, iterable[, initializer])

    参数funciton是聚合操作函数,iterable是可迭代对象,initializer是初始值,可以省略
    ​reduce()函数是将多个数据按照指定的算法积累叠加起来

    """
    reduce的作用是先把列表中的前俩个元素取出计算出一个值然后临时保存着,
    接下来用这个临时保存的值和列表中第三个元素进行计算,求出一个新的值将最开始
    临时保存的值覆盖掉,然后在用这个新的临时值和列表中第四个元素计算.依次类推
    """
    from functools import reduce
    a = [1, 2, 3, 4]
    a_reduce = reduce(lambda x, y: x*10 + y, a)
    print(a_reduce)
    >>> 1234
    
  • 相关阅读:
    MST(prim)+树形dp-hdu-4756-Install Air Conditioning
    Java常用排序算法+程序员必须掌握的8大排序算法
    高可用可伸缩架构实用经验谈
    MYSQL索引失效的各种情形总结
    MySQL使用索引的场景及真正利用索引的SQL类型
    MySQL数据库索引的4大类型以及相关的索引创建
    JVM调优浅谈
    dubbo作为消费者注册过程分析--????
    webservice 协议
    你应该知道的 RPC 原理
  • 原文地址:https://www.cnblogs.com/jiakecong/p/14441331.html
Copyright © 2011-2022 走看看