On Dec 1, 2014 4:03 PM, "David Wilson"
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.