pyiter.distinct
1from typing import Any, Callable, Iterable, Iterator, Optional, Set 2from .transform import Transform, T 3 4 5class DistinctTransform(Transform[T, T]): 6 """ 7 A transform that removes duplicates from an iterable. 8 """ 9 10 def __init__(self, iter: Iterable[T], key_selector: Optional[Callable[[T], Any]] = None): 11 super().__init__(iter) 12 self.key_selector = key_selector 13 14 def __do_iter__(self) -> Iterator[T]: 15 seen: Set[Any] = set() 16 for e in self.iter: 17 k = self.key_selector(e) if self.key_selector else e 18 if k not in seen: 19 seen.add(k) 20 yield e
6class DistinctTransform(Transform[T, T]): 7 """ 8 A transform that removes duplicates from an iterable. 9 """ 10 11 def __init__(self, iter: Iterable[T], key_selector: Optional[Callable[[T], Any]] = None): 12 super().__init__(iter) 13 self.key_selector = key_selector 14 15 def __do_iter__(self) -> Iterator[T]: 16 seen: Set[Any] = set() 17 for e in self.iter: 18 k = self.key_selector(e) if self.key_selector else e 19 if k not in seen: 20 seen.add(k) 21 yield e
A transform that removes duplicates from an iterable.