Python:通过计算阶乘来学习lambda和reduce这两个函数的使用

  从上学时开始,通常是用C来求阶乘,今天无事,用python写了一下,主要在于学习lambda和reduce这两个函数的使用。

实现:

测试:



  我们感兴趣的不在程序本身,我想更多地会关注lambda和reduce这两个函数,我们来看一下:

 lambda

  手册中这样描述:

 其实lambda就是个匿名函数,它本身是一个表达式,而def为一个语句,这就是说lambda可以用于函数中做为参数等,但def这个语句不能。

我们的 lambda x,y:x*y 语句等价于下面这个函数:


  reduce

   手册中这样描述:


  就是用函数function对序列,如list中的元素进行处理,每次处理两个数据项(一个是前次处理的结果,一个是序列中的下一个元素),如此反复的递归处理,最后对整个序列求出一个单一的返回值。

 改写一下上面的程序,很快可以理解这句话的意思:


运行结果:


  

posted @ 2012-02-19 14:33  Socrates  阅读(501)  评论(0编辑  收藏  举报