The BiobjectiveNondominatedSortedList class should overwrite __contains___ when the list is (very) long with something like
idx = self.bisect_left(f_pair)
return idx < len(self) and self[idx] == f_pair
https://docs.python.org/3/reference/datamodel.html#object.__contains__
We may also consider to inherit from sortedcontainers.SortedList instead of list (though we cannot useupdate to implement add_list).
We should first check whether and when we actually get a relevance performance gain, as Python's in seems to be very fast (80ns with 1 million entries).
The
BiobjectiveNondominatedSortedListclass should overwrite__contains___when the list is (very) long with something likehttps://docs.python.org/3/reference/datamodel.html#object.__contains__
We may also consider to inherit from
sortedcontainers.SortedListinstead oflist(though we cannot useupdateto implementadd_list).We should first check whether and when we actually get a relevance performance gain, as Python's
inseems to be very fast (80ns with 1 million entries).