python拾遺系列:python下list類型的過(guò)濾

1. 涉及到的函數(shù)

filter函數(shù)用于過(guò)濾序列,過(guò)濾掉不符合條件的元素,返回由符合條件元素組成的新列表。該函數(shù)接收兩個(gè)參數(shù),第一個(gè)為函數(shù),第二個(gè)為序列

2. 問(wèn)題轉(zhuǎn)換

從sql的角度理解,就是進(jìn)行where查詢。

select * from orders where id={} limit 1;

3. 聲明類

from datetime import datetime
class Order(object):
    id:int
    price: float
    volume: float
    orderTime: float
    def __init__(self, id, price, volume):
        self.id = id
        self.price = price
        self.volue = volume
        self.orderTime = datetime.today().timestamp()
    

4.造數(shù)據(jù)

from time import sleep
order1 = Order(1, 10., 100.)
sleep(0.5)
order2 = Order(2, 10, 50.)
order3 = Order(3, 11., 100.)
orders = [order1, order2, order3]

5. 過(guò)濾-返回只有一條記錄

比如:查詢id=2的單子

filter(lambda o: o.id == 2, orders)
<filter at 0x2076315d3c8>
order = next(filter(lambda o: o.id == 2, orders))
print(order.__dict__)
{'id': 2, 'price': 10, 'volue': 50.0, 'orderTime': 1586518831.830308}

6.過(guò)濾——返回多條記錄

比如:返回price = 10的單子

filter_orders = list(filter(lambda o: o.price == 10., orders))
for order in filter_orders:
    print(order.__dict__)
{'id': 1, 'price': 10.0, 'volue': 100.0, 'orderTime': 1586518831.329963}
{'id': 2, 'price': 10, 'volue': 50.0, 'orderTime': 1586518831.830308}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容