2.1函数式编程
1、函数式编程(Functional Programming)或函数程序设计,又称泛函编程,是一种编程范型。函数式编程可以将计算机运算视为数学上的函数计算,并且可以避免程序状态以及易变对象对函数的影响。
2、在Python中,函数式编程主要由lambda、map、reduce、filter函数构成,其中lambda在代码清单2-14中已经介绍,这里不再赘述。
3、假设有一个列表a=[5,6,7],需要将列表a中的每个元素都加3,并生成一个新列表,可以通过列表解析操作实现该要求,如代码清单2-15所示。
代码清单2-15 使用列表解析操作列表元素
a=[5,6,7]
b=[i+3 for i in a]
print(b) //输出结果为[8,9,10]
4、使用map函数实现代码清单2-15中的示例,如代码清单2-16所示。
代码清单2-16 使用map函数操作列表元素
a[5,6,7]
b=map(lambda x:x+3,a)
b=list(b)
print(b) //输出结果也为[8,9,10]
在代码清单2-16中,首先定义一个列表,然后用map函数将命令逐一应用到列表a中的每个元素,最后返回一个数组。map函数也支持多参数的位置,例如,map(lambdaa x,y:x*y,a,b)表示将a、b两个列表的元素对应相乘,并将结果返回新列表。
通过代码清单2-15和代码清单2-16可以看出,列表解析虽然代码简短,但是本质上还是for循环。在Python中,for循环效率并不高,而map函数实现了相同的功能,并且效率更高