Python 學習——高階函數 filter 和 sorted
阿新 • • 發佈:2017-05-12
dict 字符串排序 一個 大寫 bsp sort log 說話 blog ,則返回
filter
filter函數顧名思義,篩選,通過調用函數進行篩選序列中的滿足函數的子項
以實例來說話:
過濾一個序列中所有的偶數,保留奇數
另如下,過濾掉一個序列中的所有空格以及空字符等信息
可以知道,filter函數傳入了兩個參數,第一個為函數,第二個為序列
sorted
排序也是在程序中經常用到的算法。無論使用冒泡排序還是快速排序,排序的核心是比較兩個元素的大小。如果是數字,我們可以直接比較,但如果是字符串或者兩個dict呢?直接比較數學上的大小是沒有意義的,因此,比較的過程必須通過函數抽象出來。通常規定,對於兩個元素x
和y
,如果認為x < y
-1
,如果認為x == y
,則返回0
,如果認為x > y
,則返回1
,這樣,排序算法就不用關心具體的比較過程,而是根據比較結果直接排序。
此外,sorted()
函數也是一個高階函數,它還可以接收一個比較函數來實現自定義的排序。比如,如果要倒序排序,我們就可以自定義一個reversed_cmp
函數:
sorted也可用於字符串排序
sorted 增加函數作為參數後進行比較
通過代入的函數將序列中的每一項比較時,全部轉換為大寫來進行比較
Python 學習——高階函數 filter 和 sorted