• 转:Python一些特殊用法(map、reduce、filter、lambda、列表推导式等)


    • Map函数:

    原型:map(function, sequence),作用是将一个列表映射到另一个列表,

    使用方法:

    def f(x):

        return x**2

    l = range(1,10)

    map(f,l)

    Out[3]: [1, 4, 9, 16, 25, 36, 49, 64, 81]

    • Reduce函数

    原型:reduce(function, sequence, startValue),作用是将一个列表归纳为一个输出,
    使用方法:

    def f2(x,y):

        return x+y

    reduce(f1,l)

    Out[7]: 45

    reduce(f2,l,10)

    Out[8]: 55

    • Filter函数

    原型:filter(function, sequence),作用是按照所定义的函数过滤掉列表中的一些元素,
    使用方法:

    def f2(x):

        return x%2 != 0

    filter(f2,l)

    Out[5]: [1, 3, 5, 7, 9]

    记住:这里的function必须返回布尔值。

    • Lambda函数

    原型:lambda <参数>: 函数体,隐函数,定义一些简单的操作,
    使用方法:

    f3 = lambda x: x**2

    f3(2)

    Out[10]: 4

    还可以结合map、reduce、filter来使用,如:

    map(f3,l)

    Out[11]: [1, 4, 9, 16, 25, 36, 49, 64, 81]

    • 列表推导式

    基本形式:[x for item in sequence <if (conditions)>], 这里x表示对item的操作,

    使用方法:

    [i**2 for i in l]

    Out[12]: [1, 4, 9, 16, 25, 36, 49, 64, 81]

    • 字典设置默认值

    python字典中设置条目默认值在有些时候非常有用,例如初始化一个字典的时候。
    使用方法:

    x = {}

    x.setdefault(1,0)

    Out[15]: 0

    x[2] = 10

    x

    Out[17]: {1: 0, 2: 10}

    x.setdefault(2,1)

    Out[18]: 10

  • 相关阅读:
    Javascript实现图片的预加载的完整实现
    python模块查找机制探究
    网络协议模拟之QQ微博分享接口应用
    每周一荐:差异利器Beyond Compare
    Asp.Net MVC4 入门介绍
    单元测试一例:学习断言、测试用例函数的编写
    开源一个网络框架
    .NET服务端持续输出信息到客户端
    Python服务器改造
    CYQ.Data 数据框架 V4.0
  • 原文地址:https://www.cnblogs.com/xxsl/p/6116568.html
Copyright © 2020-2023  润新知