On Dec 1, 2014 4:03 PM, "David Wilson" <dw+python-ideas@hmmz.org> wrote:
>
> > before it would be useful to include in the stdlib, along with some
> > motivating use cases
>
> One example would be a continuous auction, like a stock exchange order
> book. In that case, efficient enumeration is desirable by all of
> account ID, order ID, or (price, time).
>
> book = IndexedList()
> book.add_unique_index('order_id', lambda o: o.id)
> book.add_index('account_id', lambda o: o.account_id)
> book.add_index('price_time', lambda o: (o.price, o.time))
>
> def add_order(order):
> book.append(order)
>
> def del_order(order):
> del book.indices['order_id'][order.id]
>
> def close_account(account_id):
> del book.indices['account_id'][account_id]
>
> def iter_matches(limit_price):
> for (price, time), order in book.indices['price_time']:
> if price > limit_price:
> break
> yield order
>
> Again it's not very clear how the magical 'indices' object slices would
> work.
You can also use pandas for this.