所谓命令式编程,是指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