美文网首页
Python进阶话题杂谈(五)推导式与Python的函数式编程

Python进阶话题杂谈(五)推导式与Python的函数式编程

作者: 樱雨楼 | 来源:发表于2018-06-15 20:41 被阅读0次

推导式是Python中的一类可以使得代码非常简洁、清晰的语法,其可通过仅一条语句完成一个可能带有多重循环以及条件判断的数据结构的创建。在Python中,常见的推导式包括列表推导式、哈希推导式、集合推导式以及生成器推导式,其中生成器推导式在《迭代器与迭代器协议》一文中另行讨论,本文中不再赘述。

1  列表推导式

列表推导式是最常见的一种推导式。其由一对方括号包裹,其中由交替且可选的for、if语句,以及写在最前面的最终表达式组成:

[i * j for i in range(5) if i % 2 for j in range(5) if j % 3]

2  哈希推导式

哈希推导式用于以推导式的语法生成一个哈希表,其由一对大括号包裹,且最终表达式为一个以冒号隔开的键值对:

{i : i * 2 for i in range(10)}

3  集合推导式

集合推导式自Python2.7开始使用。其用于以推导式的语法生成一个集合。其也由一对大括号包裹,但最终表达式中无冒号,这是其与哈希推导式在语法上唯一的区别:

{i for i in range(5)}

4  lambda、map、filter、reduce函数及其与推导式的比较

lambda、map、filter、reduce是Python提供的四个函数式编程语句,本文不对其语法做详细解释说明。实际上,列表推导式在语法上确实可以实现map与filter函数的全部功能:

map(str, range(100)) 在结果上等同于 [str(j) for j in range(100)]

在许多讲解Python的书籍中,作者均推荐使用推导式语法替换掉map、filter等函数式编程语法。但根据本人测试,map、filter等函数在时间消耗上,确实要比同等计算量下的推导式写法要少,这可能得益于这些函数的底层实现。故本人还是更加推荐函数式编程语法。只有当表达式非常复杂,使用map、filter等难以书写时,才考虑使用推导式写法。

2018年6月于苏州

相关文章

  • Python进阶话题杂谈(五)推导式与Python的函数式编程

    推导式是Python中的一类可以使得代码非常简洁、清晰的语法,其可通过仅一条语句完成一个可能带有多重循环以及条件判...

  • 向量化

    python向量化本身做得不是很好需要借助函数式编程或者列表推导式实现 1 列表推导式 2 函数式编程

  • Python进阶语法——函数式编程、模块,面向对象

    一、 Python进阶学习 一、函数式编程 1.1函数式编程 1.2高阶函数 1.2.1 import mathd...

  • python进阶

    教程地址:python进阶 - 慕课网 python函数式编程 变量可以指向函数: f = absprint(f)...

  • 高阶python 函数式编程

    高阶python 函数式编程 - 函数式 函数式编程(FunctionalProgramming) - 基于lam...

  • python函数式编程

    备注 本篇为慕课网python进阶教程中函数式编程章节的笔记。 简介 函数式编程允许将函数作为输入(参数)输出(返...

  • Python进阶

    Python进阶框架 希望大家喜欢,点赞哦首先感谢廖雪峰老师对于该课程的讲解 一、函数式编程 1.1 函数式编程简...

  • Python函数式编程

    虽然 Python 不是函数式编程语言(是命令式编程语言),但是支持许多有价值的函数式编程工具。Python 提供...

  • python推导式

    python的各种推导式(列表推导式、字典推导式、集合推导式) 推导式comprehensions(又称解析式),...

  • 024python的各种推导式

    python的各种推导式(列表推导式、字典推导式、集合推导式) 推导式comprehensions(又称解析式),...

网友评论

      本文标题:Python进阶话题杂谈(五)推导式与Python的函数式编程

      本文链接:https://www.haomeiwen.com/subject/pmtveftx.html