1、reduce描述
reduce() 函数会对参数序列中元素进行累积。
函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。
2、lambda匿名函数
python 使用 lambda 来创建匿名函数。
- lambda只是一个表达式,函数体比def简单很多。
- lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
- lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
- 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。
3、实例
题目要求:求出sum=2+22+222+2222......2.....2形式的和,其中长度是任一,数字2可以是自然数1~9中任一数据,用高密函数reduce()或匿名函数lambda来解决
#!/usr/bin/python from functools import reduce n=int(input("n=")) a=input("a=") lista=[] for i in range(1,n+1): c=str(a)*i lista.append(c) print("lista",lista) def add(x, y) : # 两数相加 x1=int(x) y1=int(y) return x1+y1 sum1 = reduce(add, lista) # 计算列表和:1+2+3+4+5 sum2 = reduce(lambda x, y: int(x)+int(y), lista) # 使用 lambda 匿名函数 print(sum1) print(sum2)