第一种:
#Python提供的sum()函数可以接受一个list并求和,请编写一个prod()函数,
#可以接受一个list并利用reduce()求积
#2017年10月11日13:21:23
from functools import reduce def prod(L): def multiply(x,y): return x y return reduce(multiply,L) print('3 5 7 9 =',prod([3,5,7,9]))
#输出为:
#C:\Users\loysaid_yan>"F:\Users\loysaid_yan\AppData\Local\Programs\python course\
#map_reduce\test2.py"
#3 5 7 * 9 = 945
#总结:
#尤其要注意语句的缩进问题,这个问题还没有解决?
第二种:
#这里用到Python 自带的lambda函数
#2017年10月11日13:40:32
from functools import reduce from collections import Iterable
def prod(L): if not isinstance(L,Iterable): raise TypeError('Parameter must be iterable') return reduce(lambda a,b:a*b,L)
print('3 5 7 * 9 =', prod([3, 5, 7, 9]))
#输出:
#print reduce(lambda x,y:x*y, range(1,5))
#lambda语句中,冒号前是参数,可以有多个,用逗号隔开,冒号右边的为表达式。其实lambda返回值是一个函数的地址,
#也就是函数对象。上面这句代码的含义就是:将1到5的连续整数列表传入lambda函数并用两个数的积替换列表中的数,
#也就是求5的阶乘。(((12)3)*4)
Sign in to make a reply
爱美食的Y先生
第一种:
#Python提供的sum()函数可以接受一个list并求和,请编写一个prod()函数,
#可以接受一个list并利用reduce()求积
#2017年10月11日13:21:23
* coding: utf-8 *
from functools import reduce def prod(L): def multiply(x,y): return x y return reduce(multiply,L) print('3 5 7 9 =',prod([3,5,7,9]))
#输出为:
#C:\Users\loysaid_yan>"F:\Users\loysaid_yan\AppData\Local\Programs\python course\
#map_reduce\test2.py"
#3 5 7 * 9 = 945
#总结:
#尤其要注意语句的缩进问题,这个问题还没有解决?
第二种:
#Python提供的sum()函数可以接受一个list并求和,请编写一个prod()函数,
#可以接受一个list并利用reduce()求积
#这里用到Python 自带的lambda函数
#2017年10月11日13:40:32
-- coding: utf-8 --
from functools import reduce from collections import Iterable
def prod(L): if not isinstance(L,Iterable): raise TypeError('Parameter must be iterable') return reduce(lambda a,b:a*b,L)
print('3 5 7 * 9 =', prod([3, 5, 7, 9]))
#输出:
#3 5 7 * 9 = 945
#总结:
#print reduce(lambda x,y:x*y, range(1,5))
#lambda语句中,冒号前是参数,可以有多个,用逗号隔开,冒号右边的为表达式。其实lambda返回值是一个函数的地址,
#也就是函数对象。上面这句代码的含义就是:将1到5的连续整数列表传入lambda函数并用两个数的积替换列表中的数,
#也就是求5的阶乘。(((12)3)*4)