libb.unique_iter
- unique_iter(iterable, key=None)
Yield unique elements, preserving order. Remember all elements ever seen.
>>> list(unique_everseen('AAAABBBCCDAABBB')) ['A', 'B', 'C', 'D'] >>> list(unique_everseen('ABBCcAD', str.casefold)) ['A', 'B', 'C', 'D']
Raises
TypeErrorfor unhashable items.Some unhashable objects can be converted to hashable objects using the key parameter:
For
listobjects, trykey=tuple.For
setobjects, trykey=frozenset.For
dictobjects, trykey=lambda x: frozenset(x.items())or in Python 3.15 and later, setkey=frozendict.
Alternatively, consider the
unique()itertool recipe. It sorts the data and then uses equality to eliminate duplicates. Hashability is not required.