Python 3.6中reduce函数和cmp函数
1,Python 3中取消了cmp函数,使用cmp功能的话需按如下所示(方法一种):
import operator #help(operator) ... __ge__ = ge(...) ge(a, b) -- Same as a>=b. __eq__ = eq(...) eq(a, b) -- Same as a==b. __gt__ = gt(...) gt(a, b) -- Same as a>b. __le__ = le(...) le(a, b) -- Same as a<=b. __lt__ = lt(...) lt(a, b) -- Same as a<b. __ne__ = ne(...) ne(a, b) -- Same as a!=b. eq(...) eq(a, b) -- Same as a==b. ge(...) ge(a, b) -- Same as a>=b. gt(...) gt(a, b) -- Same as a>b. le(...) le(a, b) -- Same as a<=b. lt(...) lt(a, b) -- Same as a<b. ne(...) ne(a, b) -- Same as a!=b. ... #所有函数返回结果为布尔值
2,Python3 中不可以直接调用reduce,使用方法如下:
from functools import reduce print(reduce(lambda x, y: x + y, [1,2,3,4,5]))
3,补充常用函数:
1.map()函数,会让列表中每一个元素都执行一某个函数(传递1个参数),并且将执行函数返回的结果(无论是什么样的结果)放在结果列表中
2.filter()函数,会让列表中的每一个元素都执行一次某个函数(传递1个参数),并且将执行函数返回为真或不为None的结果放在结果列表中
3.reduce()函数,会将列表中的每两个元素执行一次函数(传递2个参数),并且可以将前两个元素计算的结果拿过来,继续和列表中的第三个元素计算,计算完成后继续和第四个计算.....,最后返回的就是计算后的结果