= 0: res.append(i) print(re..."/>
您好,登錄后才能下訂單哦!
通用做法:迭代
以列表為例:
篩選出下列數(shù)字大于等于0的數(shù)
data = [2, 7, -4, -1, 3, 0, 8] res = [] for i in data: if i >= 0: res.append(i) print(res)
運行結(jié)果:
[2, 7, 3, 0, 8]
奇淫巧技——列表篩選
使用filter函數(shù)
隨機生成一組正負數(shù)皆有的數(shù),篩選出大于等于0的數(shù)
flilter(function or None, iterable)
from random import randint data = [randint(-10,10) for _ in range(10)] # filter 接收兩個參數(shù),第一個參數(shù)為過濾條件,第二個參數(shù)為過濾范圍 f = filter(lambda x: x>=0, data) for j in f: print(j)
使用列表解析(列表推導(dǎo)式)
隨機生成一組正負數(shù)皆有的數(shù),篩選出大于等于0的數(shù)
from random import randint data = [randint(-10,10) for _ in range(10)] f = [i for i in data if i >= 0] print(f)
使用timeit測試兩種方法的運行速度得到:使用列表解析的速度更快,但二者皆比通用做法迭代要快
奇淫巧技——字典篩選
假設(shè)有20個學(xué)生,學(xué)生分?jǐn)?shù)在60-100之間,篩選出成績在90分以上的學(xué)生
import random dict = {i: random.randint(60, 100) for i in range(1, 21)} # print(dict) # 根據(jù)值過濾除分?jǐn)?shù)高于90的人 res = {k: v for k, v in dict.items() if v > 90} print(res)
奇淫巧技——集合篩選
10個隨機的正負數(shù),篩選出可以和2整除的數(shù)字
import random data = set(random.randint(-10,10) for _ in range(10)) # print(data) # 篩選集合中能被2整除的數(shù) res = {i for i in data if i % 2 ==0} print(res)
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對億速云的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。