circuit_knitting.utils.iteration.unique_by_eq

unique_by_eq(iterable, /)[source]

Return unique objects in iterable, by equality.

This function is only appropriate if (i) there are a small number of objects, and (ii) the objects are not guaranteed to be hashable. Otherwise, a dict or set is a better choice.

This function may potentially make a comparison between all pairs of elements, so it executes in \(O(n^2)\) time in the worst case, in contrast to a dict or set, both of which can be constructed in \(O(n)\) time.

>>> a = {0}
>>> list(unique_by_eq([a, a]))
[{0}]
:rtype: :sphinx_autodoc_typehints_type:`\:py\:class\:\`list\``
>>> list(unique_by_eq([a, a.copy()]))
[{0}]