Python內建的filter()函數用于過濾序列
和map()類似,filter()也接收一個函數和一個序列。和map()不同的是,filter()把傳入的函數依次作用于每個元素,然后根據返回值是True還是False決定保留還是丟棄該元素。
# 回數是指從左向右讀和從右向左讀都是一樣的數,例如12321,909。請利用filter()篩選出回數:
def is_palindrome(n):
? ? n = str(n)
? ? return n == n[::-1]
# 測試
output = filter(is_palindrome, range(1,1000))
print('1~1000:', list(output))
Python內置的sorted()函數就可以對list進行排序
>>> sorted(['bob','about','Zoo','Credit'], key=str.lower, reverse=True)
['Zoo','Credit','bob','about']
# 假設我們用一組tuple表示學生名字和成績:
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
def by_name(t):
? ? return t[0]
L2 = sorted(L, key=by_name)
print(L2)
def by_score(t):
? ? return t[1] - 100
L2 = sorted(L, key=by_score)
print(L2)