• python学习002——python三大基础函数


    002_python三大基础函数

    在Python中有三个基础函数,分别是filter()、map()和reduce(),他们分别为我们提供过滤、映射和聚合的功能。上一节我们简单的使用了filter()函数结合匿名函数,下面我们会详细介绍它的用法

    1. filter()函数

    在数据筛选和过滤的时候我们通常会采用filter()函数帮助我们快速的解决问题,语法格式为:

    filter(函数,可迭代对象)
    
    • 1

    filter函数中,前面放我们的过滤或筛选方式,即函数名,后面存放可迭代的对象

    举例:过滤出1~100中平方根是整数的数

    import math
    def is_sqr(x):
    	return math.sqrt(x) % 1 == 0
    list_show = filter(is_sqr, range(1, 101))
    print(list(list_show))
    
    • 1
    • 2
    • 3
    • 4
    • 5

    输出结果:

    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
    
    • 1

    2. map()函数

    map是python内置函数,会根据提供的函数对指定的序列做映射。在使用map()函数的时候,我们大多用于对数据的处理,把可迭代对象中的数据经过函数处理之后存储,我们在存储的时候继续采用list()函数进行存储。map()函数的语法格式如下:

    map(函数,一个或多个可迭代的序列)
    #返回的是一个集合
    
    • 1
    • 2

    举例01:

    def square(x):
        return x ** 2
    
    print(list(map(square,[1,2,3,4,5])))
    
    • 1
    • 2
    • 3
    • 4

    输出结果

    [1,4,9,16,25]
    
    • 1

    举例02:

    print(list(map(lambda x, y: x+y,[1,3,5,7,9],[2,4,6,8,10])))
    
    • 1

    输出结果:

    [3, 7, 11, 15, 19]
    
    • 1

    3. reduce()函数

    reduce()函数用于把可迭代的对象通过函数方法进行聚合。

    1、python2 中,reduce函数是内置函数

    2、python3 中,函数被移到了functools模块中

    语法格式为:

    reduce(函数, 可迭代对象[, 初始值])
    
    • 1

    举例01:

    def add(x, y):
        return x + y
    print(reduce(add, [1, 2, 3, 4]))
    
    • 1
    • 2
    • 3

    输出结果:

    10
    
    • 1

    举例02:

    from functools import reduce
    dogs =({'name':'刘三', 'age':105, 'sex':'female'},
                 {'name':'彭二', 'age':26, 'sex':'male'},
                 {'name':'汪三', 'age':22, 'sex':'female'},
                 {'name':'航四', 'age':84, 'sex':'female'})
    def group_by_sex(Ham_sausage, value):
        Ham_sausage[value['sex']].append(value['name'])
        return  Ham_sausage
    grouped= reduce(group_by_sex, dogs, {'male':[], 'female':[]})
    print(grouped)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    输出结果:

    {'male': ['彭二'], 'female': ['刘三', '汪三', '航四']}
    
    • 1

    个人总结,如果熟练的掌握以上三个基础函数,相信对我们解决复杂问题肯定会有很大帮助的,欢迎大家一起学习交流讨论!!!

  • 相关阅读:
    qt简易网络聊天室 数据库的练习
    列表类型高级用法
    Linux之monitorix监控nginx实践
    数据可视化——ucharts的使用
    R语言七天入门教程五:认识并使用函数
    基于k8s实现动态弹性伸缩 动态的回滚和滚动更新
    浅谈如何使用 github.com/kardianos/service
    【JavaSE】继承
    猿创征文|中国移动 OneOS 万耦启物TB6612驱动电机
    如何保证Redis和数据库数据一致性
  • 原文地址:https://blog.csdn.net/qq_54000767/article/details/128163517