高阶函数

lambda函数

关键字lambda表示匿名函数,当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。

lambda函数省略函数名,冒号前为参数,冒号后函数体。

# 定义一个取偶数的函数
def even(x):
    for i in x:
        if i % 2 == 0:
            yield i
# 等价于取偶数
lambda x: x % 2 == 0

filter函数

filter(function,iterable)接收一个函数和一个可迭代对象作为参数,过滤iterable中满足function函数的元素。

fi = filter(lambda x: x % 2 == 0, [1, 2, 3, 4])
print(type(fi))
print(list(fi))
# <class 'filter'>
# [2, 4]

map函数

filter(function,iterable)接收一个函数和一个可迭代对象作为参数,将函数作用于iterable中的每一个元素。

m = map(lambda x: x + 1, [1, 2, 3])
print(type(m))
print(list(m))
# <class 'map'>
# [2, 3, 4]

reduce函数

reduce(funtion,iterable)接收一个函数和一个可迭代对象作为参数,将函数结果作为第一个参数,iterable中的下一个元素做第二个参数,做累计计算。

# 等价于求和计算
from functools import reduce
r = reduce(lambda x, y: x + y, [1, 2, 3])
print(r)
# 6

zip函数

zip(*iterable)接收多个可选可迭代对象作为参数,针对每个迭代对象的元素生成新的包含若干元组的一个可迭代对象。

z = zip([1, 2, 3], [4, 5, 6], [7, 8, 9])
print(type(z))
print(list(z))
# <class 'zip'>
# [(1, 4, 7), (2, 5, 8), (3, 6, 9)]

zip(*zip)

zip(*zip)是zip的逆操作。

# 逆操作
z = zip([1, 2], [3, 4], [5, 6])
x, y, q = zip(*z)
print(x, y, q)
# (1, 2) (3, 4) (5, 6)

交换dict的键值

di = {'name': 'jack', 'age': 18}
print(dict(zip(di.values(), di.keys())))
# {'jack': 'name', 18: 'age'}

模块

模块是代码量变得相当大之后,为了将需要重复使用的有组织的代码段放在一起组成一个模块,模块可以被附加到现有程序中,附加的过程叫做导入(import)。

# 导入模块的写法
import 模块名称
form 模块名称 import 方法名

Python基础灬高阶函数(lambda,filter,map,reduce,zip)的更多相关文章

  1. Python基础——4高阶函数

    高阶函数 函数本身可用变量指向,把变量当做函数参数的函数成为高阶函数 map and reduce map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每 ...

  2. Python学习(五)函数 —— 内置函数 lambda filter map reduce

    Python 内置函数 lambda.filter.map.reduce Python 内置了一些比较特殊且实用的函数,使用这些能使你的代码简洁而易读. 下面对 Python 的 lambda.fil ...

  3. Python 函数lambda(), filter(), map(), reduce()

    1 filter filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String ...

  4. Python 函数式编程 & Python中的高阶函数map reduce filter 和sorted

    1. 函数式编程 1)概念 函数式编程是一种编程模型,他将计算机运算看做是数学中函数的计算,并且避免了状态以及变量的概念.wiki 我们知道,对象是面向对象的第一型,那么函数式编程也是一样,函数是函数 ...

  5. python 高阶函数之filter

    前文说到python高阶函数之map,相信大家对python中的高阶函数有所了解,此次继续分享python中的另一个高阶函数filter. 先看一下filter() 函数签名 >>> ...

  6. python 常用的高阶函数

    前言 高阶函数指的是能接收函数作为参数的函数或类:python中有一些内置的高阶函数,在某些场合使用可以提高代码的效率. map() map函数可以把一个迭代对象转换成另一个可迭代对象,不过在pyth ...

  7. Python中的高阶函数与匿名函数

    Python中的高阶函数与匿名函数 高阶函数 高阶函数就是把函数当做参数传递的一种函数.其与C#中的委托有点相似,个人认为. def add(x,y,f): return f( x)+ f( y) p ...

  8. Python入门篇-高阶函数

    Python入门篇-高阶函数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.高级函数  1>.First Class Object 函数在Python中是一等公民 函数也 ...

  9. 高阶函数概念以及map/filter/reduce

    什么样的函数叫高阶函数:map(func, *iterables) --> map object 条件:1.函数接受函数作为参数 2.函数的返回值中包含函数 num_l = [1,2,3,4,5 ...

随机推荐

  1. 轻量ORM-SqlRepoEx (十五)最佳实践之数据映射(Map)

    简介:SqlRepoEx是 .Net平台下兼容.NET Standard 2.0人一个轻型的ORM.解决了Lambda转Sql语句这一难题,SqlRepoEx使用的是Lambda表达式,所以,对c#程 ...

  2. Android AIDL浅析及异步使用

    AIDL:Android Interface Definition Language,即 Android 接口定义语言. AIDL 是什么 Android 系统中的进程之间不能共享内存,因此,需要提供 ...

  3. 从对集合数据去重到Distinct源码分析

    今天在写代码的时候要对数据进行去重,正打算使用Distinct方法的时候,发现这个用了这么久的东西,竟然不知道它是怎么实现的,于是就有了这篇文章. 使用的.net core2.0 1.需求 假如我们有 ...

  4. Web开发生存工具使用指南

    这里安利两款我认为开发中能够极大的提高生产力的工具,Charles 和 Postman. P.S. Charles(查尔斯)..不要再读查理斯了,金刚狼中被老铁扎心的博士就叫 CharlesP.P.S ...

  5. shell习题第10题:打印每个单词的字数

    [题目要求] 用shell打印下面这句话中字母数小于6的单词. Bash also interprets a number of multi-character options. [核心要点] for ...

  6. echarts通过ajax动态获取数据的方法

    echarts表格的数据一般都需要动态获取,所以总结了一下通过ajax动态获取数据的操作: 插入的方法应该不止一种,我也是接触不久,所以刚学会了一种插入方法: 灵感和经验来自:https://www. ...

  7. MongoDB的高级使用

    MongoDB的高级使用 1. Mongdb的索引备份以及和python交互 t255为mongodb中的集合 1.1 创建索引 索引的特点:提高查找的效率 不创建索引的情况下的查询: for(i=0 ...

  8. python3 class类 练习题

    """一.定义一个学生Student类.有下面的类属性:1 姓名 name2 年龄 age3 成绩 score(语文,数学,英语) [每课成绩的类型为整数] 类方法:1 ...

  9. Executors 挖坑

    Executors 挖坑 线程频繁的创建销毁是有代价的,所以Java为我们提供了线程池 线程池构造方法很多 我们一般使用Executors的工厂方法: public static ExecutorSe ...

  10. 阿里云ubantu16.04 搭建LAMP环境

    1.登录服务器 2.sudo apt-get update 更新软件列表 3.sudo apt-get install lamp-server^  (注意右上角的' ^ '这个不能少) 输入apach ...