Added distinct query
This commit is contained in:
24
src/cpl_query/_query/distinct_query.py
Normal file
24
src/cpl_query/_query/distinct_query.py
Normal file
@@ -0,0 +1,24 @@
|
||||
from collections import Callable
|
||||
|
||||
from cpl_query.exceptions import ArgumentNoneException, ExceptionArgument
|
||||
from cpl_query.extension.iterable_abc import IterableABC
|
||||
|
||||
|
||||
def distinct_query(_list: IterableABC, _func: Callable) -> IterableABC:
|
||||
if _list is None:
|
||||
raise ArgumentNoneException(ExceptionArgument.list)
|
||||
|
||||
if _func is None:
|
||||
raise ArgumentNoneException(ExceptionArgument.func)
|
||||
|
||||
result = IterableABC()
|
||||
known_values = []
|
||||
for element in _list:
|
||||
value = _func(element)
|
||||
if value in known_values:
|
||||
continue
|
||||
|
||||
known_values.append(value)
|
||||
result.append(element)
|
||||
|
||||
return result
|
Reference in New Issue
Block a user