1. 程式人生 > >Python 3.6中reduce函式和cmp函式

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個引數),並且可以將前兩個元素計算的結果拿過來,繼續和列表中的第三個元素計算,計算完成後繼續和第四個計算.....,最後返回的就是計算後的結果