通用做法:迭代
以列表為例:
篩選出下列數字大于等于0的數
data = [2, 7, -4, -1, 3, 0, 8]res = []for i in data: if i >= 0: res.append(i)print(res)
運行結果:
[2, 7, 3, 0, 8]
奇淫巧技——列表篩選
使用filter函數
隨機生成一組正負數皆有的數,篩選出大于等于0的數
flilter(function or None, iterable)
from random import randintdata = [randint(-10,10) for _ in range(10)]# filter 接收兩個參數,第一個參數為過濾條件,第二個參數為過濾范圍f = filter(lambda x: x>=0, data)for j in f: print(j)
使用列表解析(列表推導式)
隨機生成一組正負數皆有的數,篩選出大于等于0的數
from random import randintdata = [randint(-10,10) for _ in range(10)]f = [i for i in data if i >= 0]print(f)
使用timeit測試兩種方法的運行速度得到:使用列表解析的速度更快,但二者皆比通用做法迭代要快
奇淫巧技——字典篩選
假設有20個學生,學生分數在60-100之間,篩選出成績在90分以上的學生
import randomdict = {i: random.randint(60, 100) for i in range(1, 21)}# print(dict)# 根據值過濾除分數高于90的人res = {k: v for k, v in dict.items() if v > 90}print(res)
奇淫巧技——集合篩選
10個隨機的正負數,篩選出可以和2整除的數字
import randomdata = set(random.randint(-10,10) for _ in range(10))# print(data)# 篩選集合中能被2整除的數res = {i for i in data if i % 2 ==0}print(res)
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對武林站長站的支持。
新聞熱點
疑難解答