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

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

函数式编程

函数,将其赋给变量,将其作为参数进行传递,以及从函数返回它们。(唠叨一句,这个我在实际操作中用了无数次,经常使用)这大概就是函数式编程吧。
然后Python提供了一些有助于进行这种函数式编程的函数:map、filter和reduce。在较新的python版本中,函数map和filter的用途并不大,应该使用列表推到来替代他们。可以使用map将序列的所有元素传递给函数。
list(map(str, range(10))) # 与[str(i) for i in range(10)]等价,前者现在基本不用了。
python基础教程(第3版)笔记-第六章_第1张图片
你可使用filter根据布尔函数的返回值来对元素进行过滤,下面两种写法是等价的:
python基础教程(第3版)笔记-第六章_第2张图片
实际上,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]]) 调用函数(还提供要传递给函数的参数)

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

你可能感兴趣的:(python学习)