Python實用技巧之列表、字典、集合中根據(jù)條件篩選數(shù)據(jù)詳解
通用做法:迭代
以列表為例:
篩選出下列數(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)
使用列表解析(列表推導式)
隨機生成一組正負數(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測試兩種方法的運行速度得到:使用列表解析的速度更快,但二者皆比通用做法迭代要快
巧技——字典篩選
假設有20個學生,學生分數(shù)在60-100之間,篩選出成績在90分以上的學生
import random
dict = {i: random.randint(60, 100) for i in range(1, 21)}
# print(dict)
# 根據(jù)值過濾除分數(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)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關文章
解決plt.imshow顯示cv2.imread讀取的圖像有色差發(fā)藍的四種方法問題
本文主要介紹了解決plt.imshow顯示cv2.imread讀取的圖像有色差發(fā)藍的四種方法問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-04-04
Python獲取命令實時輸出-原樣彩色輸出并返回輸出結(jié)果的示例
今天小編就為大家分享一篇Python獲取命令實時輸出-原樣彩色輸出并返回輸出結(jié)果的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07
控制Python浮點數(shù)輸出位數(shù)的操作方法
在python的輸出結(jié)果中,尤其是浮點數(shù)的輸出,當我們需要寫入文本文件時,最好是采用統(tǒng)一的輸出格式,這樣也能夠增強結(jié)果的可讀性,這篇文章主要介紹了控制Python浮點數(shù)輸出位數(shù)的方法,需要的朋友可以參考下2022-04-04
python中字典dict排序sorted的實現(xiàn)
本文主要介紹了python中字典dict排序sorted的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-05-05
pycharm與jupyter?lab/notebook結(jié)合使用方式
這篇文章主要介紹了pycharm與jupyter?lab/notebook結(jié)合使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06

