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}