一、filter()函數 filter()接收一個函數和一個序列。filter()把傳入的函數依次作用於每個元素,然後根據返回值是True還是False決定保留還是丟棄該元素。 filter()函數返回的是一個Iterator,也就是一個惰性序列,所以要強迫filter()完成計算結果,需要用lis ...
一、filter()函數
filter()
接收一個函數和一個序列。filter()
把傳入的函數依次作用於每個元素,然後根據返回值是True
還是False
決定保留還是丟棄該元素。
1 >>> from collections import Iterator 2 >>> def is_odd(n): 3 ... return n % 2 == 1 4 ... 5 >>> it = filter(is_odd, [1, 2, 3, 4, 5, 6]) 6 >>> it 7 <filter object at 0x1013e58d0> 8 >>> isinstance(it, Iterator) 9 True 10 >>> list(it) 11 [1, 3, 5]
filter()
函數返回的是一個Iterator
,也就是一個惰性序列,所以要強迫filter()
完成計算結果,需要用list()
函數獲得所有結果並返回list。
二、sorted()函數
sorted()
函數就可以對list進行排序
1 >>> sorted([36, -5, 9, -12]) 2 [-12, -5, 9, 36]
sorted()
函數也是一個高階函數,它還可以接收一個key
函數來實現自定義的排序,例如按絕對值大小排序:
1 >>> sorted([36, -5, 9, -12], key=abs) 2 [-5, 9, -12, 36]
1 >>> sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower, reverse=True) 2 ['Zoo', 'Credit', 'bob', 'about']