• map内置函数、lambda表达式、快捷生成想要的列表、filter内置函数


      map函数                            

    语法

      map(function, iterable, ...)

    参数

    • function -- 函数,有两个参数
    • iterable -- 一个或多个序列

    返回值

      Python 2.x 返回列表。

      Python 3.x 返回迭代器。

    1 def square(x) :            # 计算平方
    2     return x ** 2
    3 
    4 map(square, [1,2,3,4,5])   # 计算列表各个元素的平方
    5 
    6 # 使用lambda表达式
    7 map(lambda x: x ** 2, [1, 2, 3, 4, 5])  # 使用 lambda 匿名函数
    8 
    9 map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])

      lambda                            

    使用lambda表达式实现三目运算符

    1 # 要实现的效果
    2 if 0 == 0:
    3     name = "timo"
    4 else:
    5     name = "nana"
    6 
    7 # lambda实现   如果if条件成立,name等于if前面的值,否则等于后面的
    8 name = "timo" if 0 == 0 "nana"

    使用lambda表达式实现简单的函数

     1 # 要实现的效果
     2 def func(arg):
     3     return arg + 1
     4 
     5 # 执行
     6 func(123)
     7 
     8 
     9 # 使用lambda表达式实现 lambda后面紧跟着的是函数的参数,冒号后面跟着的是返回值
    10 lambda_func = lambda arg: arg + 1
    11 
    12 # 执行
    13 lambda_func(123)

      快捷生成想要的列表                        

    生成一个步长为5的列表

    1 arr = [x*5 for x in range(5)]
    2 # 得到结果
    3 arr = [0, 5, 10, 15, 20]

    结合lambda表达式生成列表

     1 # 第一种情况
     2 f0, f1, f2 = [lambda m: m*i for i in range(3)]
     3 
     4 f0(1) == f1(1) == f2(1) == 2
     5 
     6 
     7 # 第二种情况
     8 
     9 f = [lambda m: m*i for i in range(3)]
    10 
    11 for l in f:
    12     l(1),    
    13 
    14 # 结果 2 2 2
    15 
    16 
    17 # 第三种情况
    18 
    19 f = (lambda m: m*i for i in range(3))
    20 
    21 for l in f:
    22     l(1),    
    23 
    24 # 结果 0 1 2
    25 
    26 
    27 # 第四种情况
    28 
    29 f0, f1, f2 = (lambda m: m*i for i in range(3))
    30 
    31 f0(1) == f1(1) == f2(1) == 2

    关于上面四种情况出现不同结果的原因

    第三种情况不是元组,而是返回一个生成器,在调用 l(1)  的时候,是在生成器执行过程之中,所以函数 l  中的 i 变量随着生成器的迭代在变化,所以最终结果会有变化。
    而第四种情况一下把生成器迭代完了,和第一第二种类似,都是所有代码都执行完了,i 都处于最后一个值 2, 所以值没有变化.

      filter内置函数                            

    描述

      filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。

      该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。

    语法

        filter(function, iterable)

    参数

    • function -- 判断函数。
    • iterable -- 可迭代对象。

    返回值

      返回列表。

    实例

    1 def fun(s):
    2     if s != 'a':
    3         return s
    4 str = ['a', 'b', 'c']
    5 res = filter(fun, str1)            #过滤到字符a
    6 
    7 print(res)            #返回一个可迭代对象
  • 相关阅读:
    poj1837 Balance

    字符流
    字节流
    File类
    this和static
    异常
    接口
    抽象类
    多态
  • 原文地址:https://www.cnblogs.com/Myarticles/p/8904148.html
Copyright © 2020-2023  润新知