1. 涉及到的函数
filter函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。该函数接收两个参数,第一个为函数,第二个为序列
2. 问题转换
从sql的角度理解,就是进行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.造数据
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. 过滤-返回只有一条记录
比如:查询id=2的单子
filter(lambda o: o.id == 2, orders)
order = next(filter(lambda o: o.id == 2, orders))
print(order.__dict__)
{'id': 2, 'price': 10, 'volue': 50.0, 'orderTime': 1586518831.830308}
6.过滤——返回多条记录
比如:返回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}