From 1f633f312519f1ec8eef113bad43722d2245da93 Mon Sep 17 00:00:00 2001 From: Stefan Harmuth Date: Sun, 14 Aug 2022 11:51:02 +0200 Subject: [PATCH] min and max in the same function --- tools/tools.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/tools/tools.py b/tools/tools.py index 0266884..e235655 100644 --- a/tools/tools.py +++ b/tools/tools.py @@ -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: