Python 3.6中reduce函式和cmp函式
阿新 • • 發佈:2018-12-04
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個引數),並且可以將前兩個元素計算的結果拿過來,繼續和列表中的第三個元素計算,計算完成後繼續和第四個計算.....,最後返回的就是計算後的結果