min and max in the same function

This commit is contained in:
Stefan Harmuth 2022-08-14 11:51:02 +02:00
parent c254bb8643
commit 1f633f3125

View File

@ -27,6 +27,24 @@ def compare(a: Any, b: Any) -> int:
return bool(a > b) - bool(a < b)
def minmax(*arr: tuple) -> (Any, Any):
"""return the min and max value of an array (or arbitrary amount of arguments)"""
if len(arr) == 1:
if isinstance(arr[0], list):
arr = arr[0]
else:
return arr[0], arr[0]
arr = set(arr)
smallest = min(arr)
biggest = max(arr)
if smallest == biggest:
arr.remove(smallest)
biggest = max(arr)
return smallest, biggest
def human_readable_time_from_delta(delta: datetime.timedelta) -> str:
time_str = ""
if delta.days > 0: