2022-04-15 filter 和 sorted

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)

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容