Added distinct query

This commit is contained in:
2021-07-27 11:20:35 +02:00
parent c60598b3f6
commit 669133d491
4 changed files with 40 additions and 3 deletions

View 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