filter()
python內建的filter()
函式用於過濾序列。
和map()
類似,filter()
也接收乙個函式和乙個序列。和map()
不同的時,filter()
把傳入的函式依次作用於每個元素,然後根據返回值是true
還是false
決定保留還是丟棄該元素。
例如,在乙個list中,刪掉偶數,只保留奇數,可以這麼寫:
def
is_odd
(n):
return n % 2 == 1
filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15])
# 結果: [1, 5, 9, 15]
sorted()
python內建的sorted()
函式就可以對list進行排序:
>>> sorted([36, 5, 12, 9, 21])
[5, 9, 12, 21, 36]
此外,sorted()
函式也是乙個高階函式,它還可以接收乙個比較函式來實現自定義的排序。比如,如果要倒序排序,我們就可以自定義乙個reversed_cmp
函式:
def
reversed_cmp
(x, y):
if x > y:
return -1
if x < y:
return
1return
0
傳入自定義的比較函式reversed_cmp
,就可以實現倒序排序:
>>> sorted([36, 5, 12, 9, 21], reversed_cmp)
[36, 21, 12, 9, 5]
此外,sorted()還可以實現
字串排序
Python基礎 lambda與filter用法
1.lambda用法。python使用lambda來建立匿名函式。lambda只是乙個表示式,函式體比def簡單很多。lambda的主體是乙個表示式,而不是乙個 塊。僅僅能在lambda表示式中封裝有限的邏輯進去。lambda函式擁有自己的命名空間,且不能訪問自有引數列表之外或全域性命名空間裡的引數...
Python 過濾元素的迭代函式filter
在python內建函式中,有乙個和map 函式用法類似 卻可以用來過濾元素的迭代函式,這個函式就是filter 它會把列表中有序資料的每乙個元素逐一提供給布林型別的形參函式進行處理,再根據處理結果的真假 true或false 來決定這個元素是否形成新的列表元素。1 示例 import sympy a...
python 列表解析與map和filter函式
不知哪兒看到乙個說法,大概是當map的函式引數可以直接引用乙個已有的函式變數時 比如內建函式int,str之類的 用map更優美些,否則還是用列表解析更直觀和快速.我同意此說法.昨天在寫乙個函式時,最開始用的是map def process messages arr,msgs,mode return...