1. 程式人生 > >Python 學習——高階函數 filter 和 sorted

Python 學習——高階函數 filter 和 sorted

dict 字符串排序 一個 大寫 bsp sort log 說話 blog

filter

filter函數顧名思義,篩選,通過調用函數進行篩選序列中的滿足函數的子項

以實例來說話:

過濾一個序列中所有的偶數,保留奇數

技術分享

另如下,過濾掉一個序列中的所有空格以及空字符等信息

技術分享

可以知道,filter函數傳入了兩個參數,第一個為函數,第二個為序列

sorted

排序也是在程序中經常用到的算法。無論使用冒泡排序還是快速排序,排序的核心是比較兩個元素的大小。如果是數字,我們可以直接比較,但如果是字符串或者兩個dict呢?直接比較數學上的大小是沒有意義的,因此,比較的過程必須通過函數抽象出來。通常規定,對於兩個元素xy,如果認為x < y

,則返回-1,如果認為x == y,則返回0,如果認為x > y,則返回1,這樣,排序算法就不用關心具體的比較過程,而是根據比較結果直接排序。

技術分享

此外,sorted()函數也是一個高階函數,它還可以接收一個比較函數來實現自定義的排序。比如,如果要倒序排序,我們就可以自定義一個reversed_cmp函數:

技術分享

sorted也可用於字符串排序

技術分享


sorted 增加函數作為參數後進行比較

技術分享

通過代入的函數將序列中的每一項比較時,全部轉換為大寫來進行比較

Python 學習——高階函數 filter 和 sorted