python基础教程(第3版)笔记-第六章

时间:2019-01-18
本文章向大家介绍python基础教程(第3版)笔记-第六章,主要包括python基础教程(第3版)笔记-第六章使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

这一章的话我看到最后发现自己需要看的好像只有lambda表达式这个比较有用到的,或者说对我来说其他的好像没啥写的有意义的。

函数式编程

函数,将其赋给变量,将其作为参数进行传递,以及从函数返回它们。(唠叨一句,这个我在实际操作中用了无数次,经常使用)这大概就是函数式编程吧。
然后Python提供了一些有助于进行这种函数式编程的函数:map、filter和reduce。在较新的python版本中,函数map和filter的用途并不大,应该使用列表推到来替代他们。可以使用map将序列的所有元素传递给函数。
list(map(str, range(10))) # 与[str(i) for i in range(10)]等价,前者现在基本不用了。

你可使用filter根据布尔函数的返回值来对元素进行过滤,下面两种写法是等价的:

实际上,Python提供了一种名为lambda表达式①的功能,让你能够创建内嵌的简单函数
(主要供map、filter和reduce使用)。

reduce(这个函数我觉得完全就是无用的,可用性太差了,看不懂的直接略过就可以了)
要使用列表推导来替换函数reduce不那么容易,而这个函数提供的功能即便能用到,也用得不多。它使用指定的函数将序列的前两个元素合二为一,再将结果与第3个元素合二为一,依此类推,直到处理完整个序列并得到一个结果。例如,如果你要将序列中的所有数相
加,可结合使用reduce和lambda x, y: x+y

本章介绍的新函数

函数 描述
map(func, seq[, seq, …]) 对序列中的所有元素执行函数
filter(func, seq) 返回一个列表,其中包含对其执行函数时结果为真的所有元素
reduce(func, seq[, initial]) 等价于 func(func(func(seq[0], seq[1]), seq[2]), …)
apply(func[, args[, kwargs]]) 调用函数(还提供要传递给函数的参数)

下一章主要介绍面向对象编程