reduce函数 :
reduce() 函数会对参数序列中元素进行累积。函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。
reduce()的函数原型是:
reduce(function(), iterable, initializer),返回值是一个单值
reduce有 三个参数:
| fuction | 有两个参数的函数, 必需参数 |
|---|---|
| sequence | tuple ,list ,dictionary, string等可迭代物,必需参数 |
| initial | 初始值, 可选参数 |
reduce的工作过程是 :在迭代sequence(tuple ,list ,dictionary, string等可迭代物)的过程中,首先把 前两个元素传给 函数参数,函数加工后,然后把得到的结果和第三个元素作为两个参数传给函数参数, 函数加工后得到的结果又和第四个元素作为两个参数传给函数参数,依次类推。 如果传入了 initial 值, 那么首先传的就不是 sequence 的第一个和第二个元素,而是 initial值和 第一个元素。经过这样的累计计算之后合并序列到一个单一返回值
>>> from functools import reduce
>>> reduce(lambda x, y: x * 10 + y, [1 , 2, 3, 4, 5])
12345
>>>
1 from functools import reduce
2 scientists =({'name':'Alan Turing', 'age':105},
3 {'name':'Dennis Ritchie', 'age':76},
4 {'name':'Ada Lovelace', 'age':202},
5 {'name':'Frances E. Allen', 'age':84})
6 def reducer(accumulator , value):
7 sum = accumulator + value['age']
8 return sum
9 total_age = reduce(reducer, scientists, 0)
10 print(total_age)
lambda函数 :
lambda表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。 lambda函数之所以会被称为匿名函数,与def声明的函数不同,原因之⼀就是这种函数对象本身是没有提供名称name属性。
表达式 = lambda [parameters,即参数] : [func,即执行的运算过程]
假设有⼀组字符串,你想要根据各字符串不同字⺟的数量对其进⾏排序,其中函数用lambda函数来执行
示例代码:
strings = ['foo', 'card', 'bar', 'aaaa', 'abab']
strings.sort(key=lambda x:len(set(list(x)))
print(strings)
执行结果:
['aaaa', 'foo', 'abab', 'bar', 'card']
本文详细介绍了Python中的reduce()函数,它用于对序列元素进行累积操作,通过传入的函数对序列元素两两进行计算,最终得到单一结果。同时,文章也探讨了lambda函数的使用,这是一种简洁的匿名函数形式,常用于短小的、临时性的函数定义。结合示例代码,展示了如何利用lambda函数进行字符串长度排序。
1422

被折叠的 条评论
为什么被折叠?



