duplicates()
Creates an array of unique elements from the first occurrence of each value in `array`.
Implementation
Args: array: List to process. iteratee: Function invoked per iteration. Returns: List of duplicates.
Example
duplicates([0, 1, 3, 2, 3, 1])
Expected output: [3, 1]
Source Code
def duplicates(array: List[T], iteratee: Callable[[T], Any] = lambda x: x) -> List[T]:
seen: set = set()
dup_set: set = set()
result: List[T] = []
for item in array:
key = iteratee(item)
if key in seen and key not in dup_set:
dup_set.add(key)
result.append(item)
seen.add(key)
return result