几段小代码解释Python命令式编程和函数式编程
所谓命令式编程,是指How to do,要通过指令告诉计算机如何一步一步地完成预定任务;而所谓函数式编程,可理解为What to do,只需要通过简单的指令告诉计算机要做什么就可以了,代码更加简洁、易理解、易维护和易并行。本文通过一个小问题来演示命令式编程和函数式编程在Python中的用法。
# 创建列表
lst = list(range(10))
print(lst)
# 下面的代码使用不同方法创建新列表,新列表中的元素是lst列表中的对应元素加5
# 命令式编程,循环
result = []
for item in lst:
result.append(item + 5)
print(result)
# 列表推导式,也属于命令式编程
result = [item+5 for item in lst]
print(result)
# 函数式编程
def add5(v):
return v+5
result = list(map(add5, lst))
print(result)
# 函数式编程,lambda表达式
result = list(map(lambda item: item+5, lst))
print(result)
# 函数式编程,偏函数
from functools import partial
from operator import add
add5 = partial(add, 5)
result = list(map(add5, lst))
print(result)
运行结果:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
[5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
[5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
[5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
[5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
---------------分割线---------------
本周四(5月25日)应邀在CSDN学院分享数据挖掘与分析的第一次直播课(共3次)。CSDN学院精选了录播课程与直播课程,为学习Python 数据挖掘与分析的同学提供从Python入门到数据挖掘、数据 分析,再到实战解析全套内容。本公众号粉丝可获得大幅优惠,进入公众号留言「数据挖掘」即可领取优惠券。课程地址:
http://edu.csdn.net/mobile/openCourse/detail/402?ref=2&from=timeline
几段小代码解释Python命令式编程和函数式编程相关推荐
- 命令式编程与函数式编程
命令式编程 命令式编程(英语:Imperative programming),是一种描述电脑所需作出的行为的编程典范.几乎所有电脑的硬件工作都是指令式的:几乎所有电脑的硬件都是设计来运行机器码,使用指 ...
- java什么是函数式编程,Java 函数式编程(一)初识篇
本文已授权"后端技术精选"独家发布. 开发者使用Java8编写复杂的集合处理算法,只需要简单的代码就能在多喝cpu上高效运行,这就是Lambda表达式的初衷. 提示:函数式编程和语 ...
- 响应式编程 函数式编程_函数式编程的基本原理简介
响应式编程 函数式编程 After a long time learning and working with object-oriented programming, I took a step b ...
- java 函数式编程_函数式编程杂谈
比起命令式编程,函数式编程更加强调程序执行的结果而非执行的过程,倡导利用若干简单的执行单元让计算结果不断演进,逐层推导出复杂的运算.本文通过函数式编程的一些趣味用法来阐述学习函数式编程的奇妙之处. 一 ...
- 链式编程和函数式编程
说起链式编程和函数式编程,小伙伴们千万不要紧张. 听着很高大尚,其实也就那么回事.相信有过C#开发经验的,或者其他编程经验的,只要不是OC,一看就知道. 看两行代码: 1 Person *person ...
- java 函数式编程_Java函数式编程:Javaslang入门
java 函数式编程 Java是一门古老的语言,并且该领域中有很多新手在他们自己的领域(JVM)上挑战Java. 但是Java 8到来并带来了一些有趣的功能. 这些有趣的功能使编写新的惊人框架(例如S ...
- 函数式编程,函数式编程信奉那棵动态的运动树
cpu是树的动力源. 面向结构编程,面向结构编程所信奉的是努力设计那棵静态的资源树,相信那棵静态的资源树的良好可以大大降低那棵动态的运动树的复杂度.因为系统的资源树已经被提前进行了良好的设计,从而可以 ...
- Python修饰器的函数式编程
转载自:https://coolshell.cn/articles/11265.html 加了一些自己的注释. Python的修饰器的英文名叫Decorator,当你看到这个英文名的时候,你可能会把其 ...
- Python 过程式编程与函数式编程
过程式与函数式是两种截然不同的编程方式和思考方法,下面以求解素数为例做一下对比. 采用过程式编程 def isPrime(n):mid = int(pow(n,0.5)+1)for i in xran ...
最新文章
- spark_updateStateByKey
- POJ3666:Making the Grade——题解
- javascript中作用域,优先级等等问题, 求助中。。。。。。。。
- 【转】Python 简介
- android lottie字体json,lottie-android
- kafka依赖zookeeper原因解析及应用场景
- 和不安全的Android说再见,Google为它添加新铠甲
- python三维图的坐标_用Python 画个六维图,涨姿势了
- 2017.9.10 连续攻击游戏 思考记录
- 矩形窗函数的频谱图_读书笔记6-单频矩形脉冲信号
- 在JavaScript面向对象编程中使用继承(5)
- [备忘]java读取与写入文件的五种方式
- 基于PHP的在线聊天室(网页版)
- 何加盐深度揭秘:我是怎么找资料的?
- 37.softmax多元逻辑回归
- 夜神模拟器无法连接网络的解决办法
- python面试题 网络编程和并发(34道题)
- 3D/VR/AR简易技术原理介绍
- 计算机诞生以来应用最早的,全国一级b考试练习题.doc
- springboot整合ActiveMQ(点对点和发布订阅)
热门文章
- c语言追踪机械腿位置,基于传感器的下肢可穿戴机械腿软件系统设计与实现
- websocket php MySQL_PHP写了一个websocket服务,mysql连接实例丢失问题怎么解决?
- android 传感器 应用,Android移动设备中传感器的应用
- weixintong ent.php,多商户版微信商城对接微信公众号的方法及设置
- 计算机模拟培训,材料的计算机模拟方法培训讲解.ppt
- @aspect注解_Spring自定义注解玩法大全,从入门到放弃
- 安装centos8.4.2105 docker镜像
- psn请验证您不是机器人_创客机器人的课程简单易学吗
- Spring使用@PropertySource加载Properties配置文件
- Jenkins的安装配置