def __init__(self, table, key):
self._table = table
self._values = [] # ordered list of values
self._rec_by_val = [] # matching record numbers
self._records = {} # record numbers:values
self.__doc__ = key.__doc__ or 'unknown'
self._key = key
self._previous_status = []
for record in table:
value = key(record)
if value is DoNotIndex:
continue
rec_num = recno(record)
if not isinstance(value, tuple):
value = (value, )
vindex = bisect_right(self._values, value)
self._values.insert(vindex, value)
self._rec_by_val.insert(vindex, rec_num)
self._records[rec_num] = value
table._indexen.add(self)
评论列表
文章目录